2014-02-13 36 views
3

我知道有一種方法在常規的SQL Server來做到這一點,如果我沒有記錯,它看起來是這樣的:有沒有辦法在Sql Server CE中將'datetime'格式轉換爲'timestamp'?

SELECT UNIX_TIMESTAMP(ba_trans_entered) * 1000 AS 'dateUTC' 

我承認,但是,我沒有得到* 1000一部分,但那不重要。

當我嘗試執行在SQL Server CE此查詢它只是告訴我(即WebMatrix中告訴我):

'UNIX_TIMESTAMP' is not a recognized built-in function name. 

我假設UNIX_TIMESTAMP中的SQL Server Compact不支持。

另外,我試着在Google上搜索和搜索,但沒有與SQL Server CE相關的數據出現,所以在給定的環境中可能沒有辦法。

有沒有辦法將'datetime'(例如:7/13/2007 12:00:00 AM)轉換爲時間戳(例如:1184302800000)?我知道我可以在JavaScript中做到這一點,但我被告知在查詢本身中執行此操作可能會更快,並且因爲我正在拉取大量數據...

回答

5

SQL_SQL Server中不存在UNIX_TIMESTAMP函數在SQL Server Compact上,但可以使用DATEDIFF:

DATEDIFF(SECOND,{d '1970-01-01'}, ba_trans_entered) 
+0

我需要* 1000嗎?那是什麼? – VoidKing

+0

轉換不正確。我只是用你的代碼來轉換下面的日期:'7/1/2011 12:00:00 AM',它給了我下面的時間戳:'1309478400'。當我使用JavaScript函數將其轉換(只是爲了檢查它):'var d = new Date(1309478400);'它給了我這個日期:'Thu Jan 1970 1970 21:44:38 GMT-0600(Central Standard Time) '。我認爲也許我需要在DATEDIFF中使用MILLISECOND,但是當我嘗試時,它會告訴我:'兩個日期時間列的差異導致運行時溢出。' – VoidKing

+0

哦,並且當我將日期'7/1/2011 12:00 :00 AM'在我的JavaScript函數中:'var d = new Date(1309496400000).getTime(); ',它給了我這個時間戳:'1309496400000' – VoidKing

相關問題