SQL Server - 将月号转换为日期对象

时间:2017-11-02 10:57:37

标签: sql-server date

我使用以下代码返回结果集的月份数

SELECT datepart(m,h.SessionDate ) AS sessionDate

我可以更新此语句以返回时间戳(当月的第一个)而不是月份号吗?

3 个答案:

答案 0 :(得分:1)

是的,你可以这样做:

SELECT DATEFROMPARTS(Year(h.SessionDate), month(h.SessionDate), 1) AS sessionDate

答案 1 :(得分:0)

如果你有SQL Server 2012或更新版本,你可以按照@HoneyBadger的建议使用DATEFROMPARTS

如果您使用的是旧版SQL Server,请使用DATEADD

SELECT CAST(DATEADD(DAY, -DAY(h.SessionDate) + 1, h.SessionDate) AS DATE) AS sessionDate

答案 2 :(得分:0)

您可以将日期截断到月初,如下所示:

select dateadd(month, datediff(month, 0, h.SessionDate), 0)

这会将0h.SessionDate之间的月数与0相加。 0已转换为datetime的{​​{1}}。

rextester演示:http://rextester.com/MIM92003