Montag, 11. März 2013

SQL: Create a bigint timestamp value from datetime value



declare @getdatetime datetime=getdate() --keep fixed datetime value

declare @TimeStampValue bigint=
  Convert(bigint,YEAR(@getdatetime))*10000000000000
+Convert(bigint,MONTH(@getdatetime))*100000000000
+Convert(bigint,DAY(@getdatetime))*1000000000
+Convert(bigint,DATEPART(hh,@getdatetime))*10000000
+Convert(bigint,DATEPART(mi,@getdatetime))*100000
+Convert(bigint,DATEPART(ss,@getdatetime))*1000
+Convert(bigint,DATEPART(ms,@getdatetime))

select 'datetime value: ', @getdatetime
select 'TimeStampValue: ', @TimeStampValue

Result:  

--------------- -----------------------
datetime value: 2013-03-11 14:10:53.547
TimeStampValue: 20130311141053547


another possible way:

SELECT CAST(
CAST(DATEPART(YYYY,getdate()) as CHAR(4)) +
REPLACE(STR(DATEPART(MM,getdate()),2,0),' ','0') +
REPLACE(STR(DATEPART(D,getdate()),2,0),' ','0') +
REPLACE(STR(DATEPART(HH,getdate()),2,0),' ','0') +
REPLACE(STR(DATEPART(MI,getdate()),2,0),' ','0') +
REPLACE(STR(DATEPART(SS,getdate()),2,0),' ','0')
AS BIGINT) AS LoadId

Keine Kommentare: