SQL服务器:我如何获得上周六的日期

时间:2013-10-09 10:13:54

标签: sql-server-2008 datetime

我需要从上周六晚上7点到现在过滤一张桌子。我该怎么做?

我的过滤列是dateTime2(0)格式?

3 个答案:

答案 0 :(得分:6)

此表达式将始终为您提供上周六晚上7点,与DATEFIRST设置无关:

select DATEADD(week,
       DATEDIFF(week,'19000101',CURRENT_TIMESTAMP),'1899-12-30T19:00:00')

如果它在星期六运行,它会在上周六给你。

答案 1 :(得分:1)

SELECT * From TableName Where MyDate >= DATEADD(HH,19, DATEADD(DAY, (DATEDIFF(DAY, '19000106', GetDate()) - 1) / 7 * 7, '19000106'))

答案 2 :(得分:0)

假设你的“上周六晚上7点”的标准是一个常数......

SELECT T.*
FROM Table T
WHERE T.dtDate >= CONVERT(DATETIME, '2013-10-05 19:00')