获取SQL Server中的最后一个月

时间:2016-08-06 14:45:56

标签: sql sql-server

我必须根据另一列的值更新“月份的最后日期”列。

例如:

  • 要更新的列:订单日期
  • 格式:2016年3月31日

  • 从哪里获取价值的栏目:期间

  • 格式:201603

如何实现这一目标?

TIA

2 个答案:

答案 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))