问题 : 我想转换 datetime
将 SQL Server 转换为 Excel 日期时间格式。
示例 1:来自 2018-08-23 15:32:32.000
至43335,65
示例 2:来自 1985-03-26 10:35:42.000
至31132,44
我尝试过的:灵感来自 this回答,我试过这个查询
SELECT DATEDIFF(day, @MyDatetime, GETDATE())
如果您想转换日期(不包括小时数),这可行,但是如何转换时间呢?
在 Excel 中,时间保存在数字的小数部分,所以我尝试使用
SELECT DATEDIFF(SECOND, '1899/12/30 00:00:00.000', GETDATE())
但这会导致溢出错误。
The datediff function resulted in an overflow. The number of dateparts separating two date/time instances is too large. Try to use datediff with a less precise datepart.
最佳答案
您可以使用 CAST
:
select CAST(GETDATE() as float)+2
日期在 Excel 中的工作原理:
https://www.excelcampus.com/functions/how-dates-work-in-excel/
基本上任何日期都可以存储为自 1900 年 1 月 1 日以来的天数。时间是小数值,等于 (number_of_seconds_since_midnight)*(1/(24*60*60))
需要添加 2 天作为 Excel 和 SQL 从不同开始日期计算的天数。
希望这一切都有意义。
关于sql - 如何将日期时间(SQL Server)转换为 Excel 日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49452639/