SQL Server中的日期\格式

SQL Server中的日期\格式,sql,sql-server,sql-date-functions,Sql,Sql Server,Sql Date Functions,我有一个名为“开始日期”的列。 例如: 我想得到从开始日期到年底的天数差 在MySQL中,这有助于DATEDIFF(日期格式(开始日期,'%Y-12-31'),开始日期) 如何在SQL server中实现这一点?使用DATEDIFF()函数获取天数差,使用DATEFROMPARTS()获取一年中的最后一天: select start_date, datediff(day, start_date, datefromparts(year(start_date), 12, 31)) diff f

我有一个名为“开始日期”的列。 例如:

我想得到从开始日期到年底的天数差

在MySQL中,这有助于
DATEDIFF(日期格式(开始日期,'%Y-12-31'),开始日期)

如何在SQL server中实现这一点?

使用
DATEDIFF()
函数获取天数差,使用
DATEFROMPARTS()获取一年中的最后一天:

select start_date,
  datediff(day, start_date, datefromparts(year(start_date), 12, 31)) diff
from tablename
请参阅。
结果:

使用
DATEDIFF()
函数获取天数差,使用
DATEFROMPARTS()
获取一年中的最后一天:

select start_date,
  datediff(day, start_date, datefromparts(year(start_date), 12, 31)) diff
from 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
from tablename