我需要在SQL中将日期的最后一天作为日期给出.如果我有一个月的第一天,我可以这样做:
DATEADD(DAY, DATEADD(MONTH,'2009-05-01',1), -1)
Run Code Online (Sandbox Code Playgroud)
但有没有人知道如何推广它所以我可以找到任何给定日期的月份的最后一天?
我在SQL Server 2008中运行具有以下条件的查询.
Where FK.DT = CAST(DATEADD(m, DATEDIFF(m, 0, getdate()), 0) as DATE)
Run Code Online (Sandbox Code Playgroud)
查询需要永远以上述条件运行,但如果只是说
Where FK.DT = '2013-05-01'
Run Code Online (Sandbox Code Playgroud)
它在2分钟内运行良好.FK.DTkey包含仅月份的起始数据的值.
任何帮助,我只是无知为什么会发生这种情况.
我正在使用SQL Server 2014,我正在使用我的一个表中的列,列出了到达日期.
它采用以下格式:
ArrivalDate
2015-10-17 00:00:00.000
2015-12-03 00:00:00.000
Run Code Online (Sandbox Code Playgroud)
我正在编写一个查询,从上表中提取数据,包括ArrivalDate列.但是,我需要转换日期,以便它们成为各自月份的第一天.
换句话说,我的查询应该输出上面的例子,如下所示:
2015-10-01 00:00:00.000
2015-12-01 00:00:00.000
Run Code Online (Sandbox Code Playgroud)
我需要这个,以便我可以在PowerPivot模型中与我的日期表建立关系.
我尝试过这种语法,但它不符合我的要求:
CONVERT(CHAR(4),[ArrivalDate], 100) + CONVERT(CHAR(4), [ArrivalDate], 120) AS [MTH2]
Run Code Online (Sandbox Code Playgroud) 我有一个@StartDate和@EndDate.
我需要@StartDate作为查询运行的那一天(这将始终是本月的第一天)和@EndDate在月末是exaclty,无论月份是30天还是31天等.
我有一个Ticket_Date格式的列YYYY-MM-DD HH:MI:SS
我想检查一下是否在Ticket_date当月.
到目前为止,我有:
Ticket_date >= '2015-04-01' and Ticket_date < '2015-04-30'
Run Code Online (Sandbox Code Playgroud)
但我需要它与当月合作,而不是硬编码