【发布时间】:2016-11-09 20:55:31
【问题描述】:
我似乎无法在任何地方找到答案 --- 我想将 SQL 中的日期时间转换为 excel 序列号。
我实际上是在寻找 Excel 中的 DATEVALUE 函数,但要在 SQL 中使用
关于如何做到这一点的任何想法?谢谢
【问题讨论】:
标签: sql sql-server tsql sql-server-2012 date-manipulation
我似乎无法在任何地方找到答案 --- 我想将 SQL 中的日期时间转换为 excel 序列号。
我实际上是在寻找 Excel 中的 DATEVALUE 函数,但要在 SQL 中使用
关于如何做到这一点的任何想法?谢谢
【问题讨论】:
标签: sql sql-server tsql sql-server-2012 date-manipulation
假设所需日期是 2016-05-25
Select DateDiff(DD,'1899-12-30','2016-05-25')
返回
42515
如果你也想要时间部分
Declare @Date datetime = '2016-05-25 20:00'
Select DateDiff(DD,'1899-12-30',@Date)+(DateDiff(SS,cast(@Date as Date),@Date)/86400.0)
返回
42515.8333333
【讨论】:
您只需将datetime 值转换为int 并添加1:
SELECT CONVERT(INT,YourDate) + 1
FROM dbo.SomeTable;
【讨论】:
DateDiff()方法更优雅.
使用排序规则:SQL_Latin1_General_CP1_CI_AS
你应该使用
Select DateDiff(DD,'18991230','20160525')
返回 42515
您可以将“20160525”替换为 getdate() 或您的日期字段
【讨论】: