我使用以下代码返回结果集的月份数
SELECT datepart(m,h.SessionDate ) AS sessionDate
我可以更新此语句以返回时间戳(当月的第一个)而不是月份号吗?
答案 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)
这会将0
和h.SessionDate
之间的月数与0
相加。 0
已转换为datetime
的{{1}}。
rextester演示:http://rextester.com/MIM92003