Avatar billede stigc Nybegynder
01. maj 2002 - 10:09 Der er 18 kommentarer og
1 løsning

Automatisk indsætte now() i et integer felt

INSERT INTO XXXX
                      (logDateTime)
VALUES    CAST { fn NOW() as integer)


Jeg vil gerne bruge ms sql now() funktion til at oprette
et UNIX timestamp i et integer felt. Hvordan?
Avatar billede bennytordrup Nybegynder
01. maj 2002 - 10:11 #1
Kan du ikke bruge timestamp (rowversion på SQL Server 2K)?
Avatar billede jakobandersen Nybegynder
01. maj 2002 - 10:14 #2
Kan du ikke lave en Convert eller Cast på GETDATE()?
Avatar billede rou Nybegynder
01. maj 2002 - 10:15 #3
Der er en anden felttype du burde kunne bruge, nemlig en Timestamp.
Jeg kender ikke Unix timestamp, men vil tro det er det samme.
Avatar billede terry Ekspert
01. maj 2002 - 10:16 #4
stigc>wouldnt it be more logical to convert the integer field to a date time?
Avatar billede _just4fun_ Nybegynder
01. maj 2002 - 10:19 #5
Nu ved jeg ikke helt hvad et UNIX timestam er, men på en MSSqlserver hedddder den gunnktion du taler om getDate(), så det vliver:
Insert into xxx
  (logDateTime)
Values
  (convert(integer, getDate()))
Avatar billede terry Ekspert
01. maj 2002 - 10:20 #6
Unique!
Avatar billede stigc Nybegynder
01. maj 2002 - 10:22 #7
INSERT INTO ProdBundtLog
                      (logDateTime)
VALUES    (CONVERT(integer, GETDATE()))

indsætter "37375" hvilket ikke kan sammenlignes med en unix Time stamp.
Felter er en integer og kan ikke ændres!
Avatar billede terry Ekspert
01. maj 2002 - 10:24 #8
what format does a UNIX time stamp have?
Avatar billede stigc Nybegynder
01. maj 2002 - 10:27 #9
sekunder siden 1970, eller sådan noget.
Avatar billede terry Ekspert
01. maj 2002 - 10:29 #10
Well I dont think ANY of the suggestions here can help you with that.
Avatar billede jakobandersen Nybegynder
01. maj 2002 - 10:39 #11
Hvad med at bruge en DATADIFF sådan her:

DATEDIFF(ss, '1970-01-01 00:00:00', getdate())
Avatar billede bennytordrup Nybegynder
01. maj 2002 - 10:41 #12
declare @D as datetime set @D = getdate()
declare @Base as datetime set @Base = '19700101'

select @Base, @D, datediff(ss, @Base, @D)
Avatar billede jakobandersen Nybegynder
01. maj 2002 - 10:43 #13
Måske skulle jeg smide et svar
Avatar billede bennytordrup Nybegynder
01. maj 2002 - 11:12 #14
moonduck> Hvis du hentyder til mig, så havde jeg ikke opdateret browseren med de nyeste svar, da jeg smed mit svar afsted :-/
Avatar billede jakobandersen Nybegynder
01. maj 2002 - 11:20 #15
benny.tordrup> Nej, Nej, jeg hentyder ikke til dig. Jeg lagde bare lige mærke til at jeg kun havde kommenteret og ikke svaret.
Avatar billede bennytordrup Nybegynder
01. maj 2002 - 11:24 #16
moonduck> Sådan er det jo nogle gange med default indstillinger ;-)
Avatar billede _just4fun_ Nybegynder
01. maj 2002 - 13:26 #17
Sårn... det er godt nok et kommatal, men what the f. Gang op hvis dy ikke synes det er pænt...
select convert(float, getDate())

reversibel med:
select convert(dateTime, 37375.558926041667)
/Jesper
Avatar billede bennytordrup Nybegynder
06. maj 2002 - 20:50 #18
Fik du løst dit problem?
Avatar billede stigc Nybegynder
06. maj 2002 - 20:53 #19
ja datediff virkede... den med float virker sikkert også.
Takker.
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