我有一个名为“开始日期”的列。如:我想得到从开始日期到年底的天数差。在mysql中,这很有帮助 DATEDIFF(DATE_FORMAT(start_date,'%Y-12-31'),start_date) 如何在sql server中实现这一点?
DATEDIFF(DATE_FORMAT(start_date,'%Y-12-31'),start_date)
b4lqfgs41#
使用 DATEDIFF() 函数以获取天数和 DATEFROMPARTS() 要获得一年中的最后一天:
DATEDIFF()
DATEFROMPARTS()
select start_date, datediff(day, start_date, datefromparts(year(start_date), 12, 31)) difffrom tablename
select start_date,
datediff(day, start_date, datefromparts(year(start_date), 12, 31)) diff
from tablename
请看演示。结果:
> start_date | diff> :--------- | ---:> 2019-01-25 | 340> 2018-12-01 | 30> 2019-12-01 | 30
> start_date | diff
> :--------- | ---:
> 2019-01-25 | 340
> 2018-12-01 | 30
> 2019-12-01 | 30
xzv2uavs2#
SELECTstart_date,cast(DATEADD (dd, -1, DATEADD(yy, DATEDIFF(yy, 0, start_date) +1, 0))as date)end_date,datediff(day, start_date, DATEADD (dd, -1, DATEADD(yy, DATEDIFF(yy, 0, start_date) +1, 0))) difffrom tablename
SELECT
start_date,
cast(DATEADD (dd, -1, DATEADD(yy, DATEDIFF(yy, 0, start_date) +1, 0))as date)end_date,
datediff(day, start_date, DATEADD (dd, -1, DATEADD(yy, DATEDIFF(yy, 0, start_date) +1, 0))) diff
2条答案
按热度按时间b4lqfgs41#
使用
DATEDIFF()
函数以获取天数和DATEFROMPARTS()
要获得一年中的最后一天:请看演示。
结果:
xzv2uavs2#