sql - 将日期时间转换为 Unix 时间戳

标签 sql sql-server datetime sql-server-2012 unix-timestamp

在 Microsoft SQL Server 2012 或更高版本中,是否可以在单个 select 语句中将日期时间值转换为 Unix 时间戳?如果是这样,怎么做?

最佳答案

正如 Peter Halasz 在 T-SQL DateTime to Unix Timestamp 中提到的那样:

Converting a datetime to unix timestamp is easy, but involves error prone typing the following:

@timestamp=DATEDIFF(second,{d '1970-01-01'},@datetime)

Where @datetime is the datetime value you want to convert. The {d ‘yyyy-mm-dd’} notation is an ODBC escape sequence.

The function:

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

立即尝试如下@O A:
SELECT UNIX_TIMESTAMP(GETDATE());

关于sql - 将日期时间转换为 Unix 时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34455408/

相关文章:

mysql - 赛事管理软件的数据库设计

php - MYSQL表有静态值和动态值

java - 如何将mysql数据库中的日期时间格式转换为正常的am/pm格式?

java - DateFormat 格式方法不显示特定时区的解析日期

sql - 如何只存储时间;不是日期和时间?

sql - 基于Count使用IF ELSE语句执行不同的Insert语句

sql - 如果指定了 SELECT DISTINCT,则 ORDER BY 项目必须出现在选择列表中......我花了几个小时但没有找到

java - 传入的表格数据流 (TDS) 远程过程调用 (RPC) 协议(protocol)流不正确。参数 1 ("") : Data type 0x38 is unknown

datetime - 两个 time.Time 对象之间的差异

java - 使用列索引而不是列名称插入 SQL Derby