2014-02-13 38 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

相关问题