在Microsoft SQL Server 2012或更高版本中,是否可以在单个select语句中将datetime值转换为Unix时间戳?如果是这样,怎么办?
正如Peter Halasz在T-SQL DateTime到Unix Timestamp中提到的那样:
将日期时间转换为unix时间戳很容易,但是容易出错,键入以下内容: @timestamp=DATEDIFF(second,{d '1970-01-01'},@datetime) 其中@datetime是要转换的日期时间值。{d“ yyy-mm-dd”表示法是ODBC转义序列。 功能: CREATE FUNCTION UNIX_TIMESTAMP ( @ctimestamp datetime ) RETURNS integer AS BEGIN /* Function body */ declare @return integer SELECT @return = DATEDIFF(SECOND,{d '1970-01-01'}, @ctimestamp) return @return END 现在像下面@Ousman一样尝试一下: SELECT UNIX_TIMESTAMP(GETDATE());
将日期时间转换为unix时间戳很容易,但是容易出错,键入以下内容:
@timestamp=DATEDIFF(second,{d '1970-01-01'},@datetime)
其中@datetime是要转换的日期时间值。{d“ yyy-mm-dd”表示法是ODBC转义序列。
功能:
CREATE FUNCTION UNIX_TIMESTAMP ( @ctimestamp datetime ) RETURNS integer AS BEGIN /* Function body */ declare @return integer SELECT @return = DATEDIFF(SECOND,{d '1970-01-01'}, @ctimestamp) return @return END
现在像下面@Ousman一样尝试一下:
SELECT UNIX_TIMESTAMP(GETDATE());