有没有类似的东西DATEFROMPARTS(year, month, day)
在 SQL Server 2008 中?我想使用当前的年份和月份创建一个日期,但我自己的月份。这需要在一行中完成,以便在计算列公式中使用。
例如(我不确定它是否有效,因为我没有 SQL Server 2012):
DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 3)
有没有办法在 SQL Server 2008 中做到这一点?
DATEFROMPARTS 似乎仅在 SQL Server 2012 中可用 (link)
最佳答案
使用 3
从你的例子中,你可以这样做:
dateadd(dd, 3 -1, dateadd(mm, datediff(mm,0, current_timestamp), 0))
它的工作原理是查找自纪元日期以来的月数,将这些月份添加回纪元日期,然后将所需的天数添加到先前的结果中。这听起来很复杂,但它建立在
Date
之前截断日期的规范方法之上。 (不是 DateTime)类型添加到 Sql Server 2008。您可能会在这里看到其他建议构建日期字符串的答案。我劝你避免使用字符串的建议 .使用字符串可能会慢得多,并且使用替代日期排序规则/格式存在一些潜在的陷阱。
关于sql - 在 SQL Server 2008 中创建日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19523721/