【发布时间】:2021-06-17 14:44:03
【问题描述】:
我有一个像这样的 SQL where 子句:
AND (((@Shift = 1
AND QtyHistoryDetails.stgtxndate
BETWEEN (CONVERT(CHAR(10), @StartDate, 101)) + ' 6:00:00'
AND (CONVERT(CHAR(10), @StartDate, 101)) + ' 14:30:00')
OR (@Shift = 2
AND QtyHistoryDetails.stgtxndate
BETWEEN (CONVERT(CHAR(10), @StartDate, 101)) + ' 14:00:00'
AND (CONVERT(CHAR(10), @StartDate, 101)) + ' 22:30:00')
OR (@Shift = 3
AND QtyHistoryDetails.stgtxndate
BETWEEN (CONVERT(CHAR(10), @StartDate, 101)) + ' 23:00:00'
AND (CONVERT(CHAR(10), @StartDate, 101)) + ' 6:30:00')))
AND cpdPressResource IS NOT NULL
AND cpdmold IS NOT NULL
AND cpdCavities IS NOT NULL
我专注于SHIFT = 3:我需要一种方法来从@shift3 中提取数据并减去1 天来显示从前一天到选定日期的数据。这可能吗?
【问题讨论】:
-
您使用的是哪个 dbms? (在日期/时间方面,许多产品远不符合 ANSI SQL。)
-
@jarlh 这是在 SQL 中
-
肯定不是 ANSI/ISO SQL。例如。 convert() 是一个产品特定的函数。
-
@Jarlh,所以为了给出上下文,我需要传递一个等于日期的字符串值。所以在我的情况下,字符串值是@shift=X。用户将用 1 到 3 之间的数字子 X。我想做的是说当你选择 3 时,你可以看到从前一天“晚上 10 点”到“上午 12 点”到今天上午 12:00:01 到下午 6 点。我该怎么做?
-
我猜你的意思是 Sql Server?然后请添加该标签
标签: sql sql-server reporting-services