问题:我想将Server的datetime转换为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())但这会导致溢出错误。
datediff函数导致溢出。分隔两个日期/时间实例的日期部分数量太大。尝试在不太精确的日期部分使用datediff。
发布于 2018-03-23 15:11:34
你可以用CAST
select CAST(GETDATE() as float)+2如何在Excel中运行日期:https://www.excelcampus.com/functions/how-dates-work-in-excel/
基本上,任何日期都可以存储为自1900年1/1/1900以来的天数。时间是小数值,等于(number_of_seconds_since_midnight)*(1/(24*60*60))
需要从不同的开始日期添加2天作为Excel和SQL计数天数。
希望这一切都有意义。
发布于 2018-03-23 15:08:42
将DATETIME转换为FLOAT并添加2
示例
Declare @D datetime = '2018-08-23 15:32:32.000'
Select cast(@D as float)+2返回
43335.6475925926发布于 2018-03-23 15:02:52
我只需从Db中获取数据并让Excel转换它。这样,如果Excel更改了其内部表示形式,您的SQL代码就不必更改
https://stackoverflow.com/questions/49452639
复制相似问题