Avatar billede johnfs Nybegynder
26. maj 2002 - 19:41 Der er 8 kommentarer og
1 løsning

Konverter fra Access SQL til MS SQL Server

Jeg har prøvet at konvertere en Access SQL sætning til en MS SQL server , med den kommer med en fejl da den ikke kender funktionen 'Format', 'Date' samt 'Now'.
Er der en som kan hjælpe mig med mit problem.

Min Access SQL:

UPDATE SOH
SET SOH.OrdDt = Format(Date(),'yyyymmdd'), SOH.CreTm = Format(Now(),'hhnn')
Avatar billede kasiwakki Nybegynder
26. maj 2002 - 20:07 #1
prøv getdate
Avatar billede hansk Nybegynder
26. maj 2002 - 20:44 #2
Jeg mener at formaterne skal hedde noget med:

Format(Date(),"YYYY-MM-DD")

Format(Now(),"hh:mm:ss")

altså dobbelte plinger omkring formatet.
Avatar billede johnfs Nybegynder
26. maj 2002 - 20:55 #3
- elller : ingen betydning i en FORMAT() sætning
FORMAT() kan ikke bruges. Spørgsmålet er hvad gør man så???
Avatar billede terry Ekspert
26. maj 2002 - 21:07 #4
format is NOT used in SQL Server

Try
UPDATE SOH
SET SOH.OrdDt = Convert(datetime, getdate(), 102), SOH.CreTm = Convert(datetime, getdate(), 108)
Avatar billede hansk Nybegynder
26. maj 2002 - 21:09 #5
Kan du ikke definere en variabel som dato/tid, og så blot opdatere med denne variabel, eks:

SET SOH.OrdDt = YourDate
SOH.CreTm = YourTime

det burde vel fungere!
Avatar billede johnfs Nybegynder
26. maj 2002 - 22:25 #6
Hej Terry
Tak for dit svar, det virker hvis 'data typen' = 'datetime'
på begge kolonne, men begge kolonners 'data typen' skal være 'int' da
værdien i kolonnen 'OrdDt' = '20020526'(yyyymmdd) og 'CreTm' = '2219' (hhnn)
Avatar billede tmceu Praktikant
27. maj 2002 - 11:36 #7
Jeg har haft et problem i samme stil, med numeriske dato/tid felter fra DB2 på AS/400. Jeg har løst det med en funktion:

CREATE FUNCTION dbo.MyFunction(@myDate datetime)
RETURNS int
AS

BEGIN
DECLARE @YEAR varchar(4)
DECLARE @MONTH varchar(2)
DECLARE @DAY varchar(2)
DECLARE @TEMP int

SET @YEAR = YEAR(@myDate)
SET @MONTH = MONTH(@myDate)
SET @DAY = DAY(@myDate)

IF (LEN(@DAY) = 1)
    SET @DAY = '0' + @DAY

IF (LEN(@MONTH) = 1)
    SET @MONTH = '0' + @MONTH

SET @TEMP = CONVERT(int, @YEAR + @MONTH + @DAY)

RETURN(@TEMP)
END

Når du vil bruge den, kan du eks. kalde den sådan:

SELECT dbo.MyFunction(getdate())

Det vil idag returnere 20020527

Hvis det er noget for dig, kan du sikkert selv lave en funktion til tiden.
Avatar billede johnfs Nybegynder
27. maj 2002 - 12:25 #8
tmceu din Function virker - Tusind tak
Avatar billede tmceu Praktikant
27. maj 2002 - 13:23 #9
Det var så lidt :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester