我希望这个查询能够自动知道今天的日期和时间以及今年(或月份)(或星期)的第一天......
SELECT TicketID
FROM Ticket
WHERE (Ticket.DtCheckOut > '1/1/2011 12:00:00 AM')
AND (Ticket.DtCheckOut < '8/27/2011 12:00:00 AM')
我知道它会以某种形式使用GETDATE()
,但我保证你不会想看到我想出的东西!
这是我在 GETDATE()
MDSN: GETDATE(Transact-SQL) 上读到的内容
我环顾四周和谷歌 - 没有找到任何“干净”的东西 - 所以任何输入都会很棒!
最佳答案
DECLARE @now DATETIME
SET @now = GETDATE()
SELECT
DATEADD(yy, DATEDIFF(yy, 0, @now), 0) AS FirstDayOfYear,
DATEADD(mm, DATEDIFF(mm, 0, @now), 0) AS FirstDayOfMonth,
DATEADD(DAY, -DATEDIFF(dd, @@DATEFIRST - 1, @now) % 7, @now) AS FirstDayOfWeek
@@DATEFIRST
是 SQL Server 一周的第一天,如果您使用美国英语,则默认为星期日。
关于YTD、MTD、WTD 总计的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7211354/