📅  最后修改于: 2023-12-03 15:23:19.430000             🧑  作者: Mango
在 SQL Server 数据库中,日期和时间都是以纪元存储的,即自 1970 年 1 月 1 日以来经过的秒数。在某些情况下,需要将纪元转换为日期格式以便更好地理解。
使用 SQL Server 中的 CONVERT() 函数可以将纪元转换为日期格式。以下是将纪元 1615855146 转换为日期的示例:
SELECT CONVERT(datetime, '1970-01-01') + DATEADD(s, 1615855146, 0) AS 'Date'
解释:
CONVERT(datetime, '1970-01-01')
将字符串 '1970-01-01' 转换为日期格式。DATEADD(s, 1615855146, 0)
在转换后的日期上添加秒数 1615855146。AS 'Date'
添加别名 'Date'。该示例返回日期格式为 '03/15/2021 16:12:26.000'。
除了使用 CONVERT() 函数,还可以使用 SQL Server 中的 DATEADD() 函数将纪元转换为日期格式。以下是将纪元 1615855146 转换为日期的示例:
SELECT DATEADD(s, 1615855146, '19700101') AS 'Date'
解释:
DATEADD(s, 1615855146, '19700101')
在日期 '1970-01-01' 上添加秒数 1615855146。该示例返回日期格式为 '03/15/2021 16:12:26.000'。
还可以使用 SQL Server 中的 CAST() 函数将纪元转换为日期格式。以下是将纪元 1615855146 转换为日期的示例:
SELECT CAST(CAST('19700101' AS datetime) + 1615855146 / (3600 * 24.0) AS datetime) AS 'Date'
解释:
CAST('19700101' AS datetime)
将 '19700101' 转换为日期格式。1615855146 / (3600 * 24.0)
通过除以 3600 * 24 获取天数。CAST(... AS datetime)
将计算出的天数加上起始日期并转换为日期格式。AS 'Date'
添加别名 'Date'。该示例返回日期格式为 '03/15/2021 16:12:26.000'。
以上三种方法都可以在 SQL Server 中将纪元转换为日期格式。根据具体需求,可以选择其中一种适合自己的方法使用。