SQL Server 2019-在日期中添加时间组件

问题描述

我想在日期中添加1天。 我的约会日期例如。

{'ticker': 'USADebt2GDP','companyName': 'United States Gross Federal Debt to GDP','startDate': '1940-12-31T00:00:00.000Z','endDate': '2019-12-31T00:00:00.000Z','unit': 'percent','graph': {'column_names': ['Date','Volume'],'data': [['2010-12-31',91.4],['2011-12-31',96],['2012-12-31',100.1],['2013-12-31',101.2],['2014-12-31',103.2],['2015-12-31',100.8],['2016-12-31',105.8],['2017-12-31',105.4],['2018-12-31',106.1],['2019-12-31',106.9]]},'withoutLiveData': True}
['2010-12-31',91.4]
['2011-12-31',96]
['2012-12-31',100.1]
['2013-12-31',101.2]
['2014-12-31',103.2]
['2015-12-31',100.8]
['2016-12-31',105.8]
['2017-12-31',105.4]
['2018-12-31',106.1]
['2019-12-31',106.9]

我想增加24小时,即预期输出

2020-09-10 18:30:00.000' 

我写了2020-09-11 18:30:00.000 ,但这没有显示时间成分。

如何添加带有时间成分的日期?

解决方法

SQL Server在识别日期格式方面确实非常灵活,并且如果将其放在日期函数中,则会很高兴将字符串理解为日期。因此,无需从字符串到日期的显式转换,只需执行以下操作即可:

dateadd(day,1,'2020-09-10 18:30:00.000')
,

尝试丢弃datediff()。根据{{​​3}},日期是dateadd()函数的第三个参数。

select dateadd(day,convert(datetime,'2020-09-10 18:30:00.000') );

输出:

2020-09-11 18:30:00.000