获取SQL Server中月份的最后日期

获取SQL Server中月份的最后日期,sql,sql-server,Sql,Sql Server,我必须根据另一列的值,用“月的最后一天”更新一列 例如: 要更新的列:订单日期 格式:2016年3月31日 从何处获取值的列:句点 格式:201603 如何做到这一点 TIA在SQL Server 2012中,您将使用eomonth(): 如果您有一个名为PeriodFormat的列,那么您将使用: select eomonth(cast(cast(PeriodFormat as varchar(255)) + '01' as date)) 请注意,SQL Server(以及一般的数据库)

我必须根据另一列的值,用“月的最后一天”更新一列

例如:

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

  • 从何处获取值的列:句点

  • 格式:201603
如何做到这一点


TIA

在SQL Server 2012中,您将使用
eomonth()

如果您有一个名为
PeriodFormat
的列,那么您将使用:

select eomonth(cast(cast(PeriodFormat as varchar(255)) + '01' as date))

请注意,SQL Server(以及一般的数据库)使用内部格式存储日期。这就是您应该如何声明日期和日期时间列的方法。您可以使用
convert()
format()
将它们转换为输出时的字符串表示形式。但是使用数据库支持日期并正确存储数据。

在SQL Server R 2012中,您可以使用
eomonth()

如果您有一个名为
PeriodFormat
的列,那么您将使用:

select eomonth(cast(cast(PeriodFormat as varchar(255)) + '01' as date))
请注意,SQL Server(以及一般的数据库)使用内部格式存储日期。这就是您应该如何声明日期和日期时间列的方法。您可以使用
convert()
format()
将它们转换为输出时的字符串表示形式。但是使用数据库支持日期并正确存储数据。

declare @aDate Date = getdate()
Select dateAdd(month, 1, dateAdd(day, -Day(@aDate),@aDate))


非常感谢戈登:)非常感谢戈登:)