是否可以获取SQL datetime列的时间戳?

是否可以获取SQL datetime列的时间戳?,sql,sql-server,Sql,Sql Server,我正在使用Microsoft SQL Server,我有一个带有datetime列的表 当我运行查询时,从客户处选择结束日期我得到2007-12-03 10:15:30.000 我想运行一个查询,返回表示日期和时间的unix时间戳,如1543357818。这可以通过SQL实现吗?只需使用datediff(): 另一种方法是,转换为float并进行减法运算,然后转换为seconds。显然,您可以将其中一些更改为常量,但这说明了我在做什么: select floor((convert(float,g

我正在使用Microsoft SQL Server,我有一个带有
datetime
列的表

当我运行查询时,
从客户处选择结束日期
我得到
2007-12-03 10:15:30.000

我想运行一个查询,返回表示日期和时间的unix时间戳,如
1543357818
。这可以通过SQL实现吗?

只需使用
datediff()


另一种方法是,转换为float并进行减法运算,然后转换为seconds。显然,您可以将其中一些更改为常量,但这说明了我在做什么:

select floor((convert(float,getdate())-convert(float,convert(datetime,'1970-01-01')))*24*60*60)

datediff
返回一个整数。我需要返回一个很长的时间。否则,我会看到datediff函数导致溢出。分隔两个日期/时间实例的日期部分太多。hmm
DATEDIFF_BIG
似乎可以工作。我想没有比这更好的办法了。。还有一件事。这假定列中的日期已经是UTC时间。但是我的列值是为本地时间设置的zone@RonApple1996 . . . 您可以使用
datediff()
,但有符号整数至少在2030年代之前都有效。
select floor((convert(float,getdate())-convert(float,convert(datetime,'1970-01-01')))*24*60*60)