可能重复:
How do I calculate the last day of the month in SQL?你怎么这个月的最后一天calulate从datetime值
新到SQL,但你会如何决定从当月值的最后一天日期时间(trans_date)。
对不起只是一个愚蠢的问题,但不是使用当前日期,我可以从指定表TRANS
可能重复:
How do I calculate the last day of the month in SQL?你怎么这个月的最后一天calulate从datetime值
新到SQL,但你会如何决定从当月值的最后一天日期时间(trans_date)。
对不起只是一个愚蠢的问题,但不是使用当前日期,我可以从指定表TRANS
皮纳尔戴夫在这里有一个很好的解释:
http://blog.sqlauthority.com/2007/08/18/sql-server-find-last-day-of-any-month-current-previous-next/
保持记住,如果你使用SQL2008,你可以CAST(field AS DATE)
来摆脱产生的时间数据。
一个简单TRANS_DATE(日期),找到第一个下一个月的再减去1天。
例如,
DECLARE @dt AS DATETIME = GetDate();
SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@dt)+1,0))
编辑:如果您从表中选择只是这样做:
SELECT
SomeColumn,
DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,SomeColumn)+1,0)) AS EndOfMonth
FROM SomeTable
请注意,如果你打算在例如where子句中使用它,下个月的第一天会更有用。特别是如果你使用数据类型'datetime'。防爆。如果你使用'datetimecol''20111001''你将得到整个月份,但如果你使用'datetimecol <='20110930''你没有得到每月最后一天的任何行(除了在午夜创建的那些日期除外)。 –