我必须根据另一列的值更新“月份的最后日期”列。
例如:
格式:2016年3月31日
从哪里获取价值的栏目:期间
如何实现这一目标?
TIA
答案 0 :(得分:2)
在SQL Serverr 2012中,您将使用eomonth()
:
如果您有一个名为PeriodFormat
的列,那么您将使用:
select eomonth(cast(cast(PeriodFormat as varchar(255)) + '01' as date))
请注意,SQL Server(以及一般数据库)使用内部格式存储日期。这就是你应该如何声明你的日期和日期时间列。您可以使用convert()
或format()
将它们转换为输出中的字符串表示形式。但是使用数据库支持日期并正确存储数据。
答案 1 :(得分:0)
或
declare @aDate Date = getdate()
Select dateAdd(month, 1, dateAdd(day, -Day(@aDate),@aDate))
或
Select dateAdd(day, -Day(@aDate), dateAdd(month, 1, @aDate))