SQL Server:检查所选日期是否比当前日期旧或新
我使用以下存储过程选择数据,其中dateDT保存为datetime 是否有一种方法可以使用CASE检查每个选定日期是否比当前日期旧或新,并为该日期添加一个简短文本(例如“过去”或“未来”)SQL Server:检查所选日期是否比当前日期旧或新,sql,sql-server,date,datetime,stored-procedures,Sql,Sql Server,Date,Datetime,Stored Procedures,我使用以下存储过程选择数据,其中dateDT保存为datetime 是否有一种方法可以使用CASE检查每个选定日期是否比当前日期旧或新,并为该日期添加一个简短文本(例如“过去”或“未来”) SELECT dateID, CONVERT(VARCHAR(11), dateDT, 106) AS dateDT, CONVERT(VARCHAR(10), dateDT, 126) AS dateDTShort, coun
SELECT dateID,
CONVERT(VARCHAR(11), dateDT, 106) AS dateDT,
CONVERT(VARCHAR(10), dateDT, 126) AS dateDTShort,
countries,
regions
FROM DaysFixed
WHERE countries LIKE '%'+@selCountry+'%'
OR regions LIKE '%'+@selCountry+'%'
ORDER BY dateID
FOR XML PATH('datesDT'), ELEMENTS, TYPE, ROOT('root')
谢谢你,迈克 假设该字段是日期:
SELECT dateID,
CONVERT(VARCHAR(11), dateDT, 106) AS dateDT,
CASE WHEN CONVERT(VARCHAR(11), dateDT, 106) > GETDATE() THEN 'Future'
ELSE 'Past' END AS FutureOrPast,
CONVERT(VARCHAR(10), dateDT, 126) AS dateDTShort,
countries,
regions
FROM DaysFixed
WHERE countries LIKE '%'+@selCountry+'%'
OR regions LIKE '%'+@selCountry+'%'
ORDER BY dateID
FOR XML PATH('datesDT'), ELEMENTS, TYPE, ROOT('root')
SELECT dateID,
CONVERT(VARCHAR(11), dateDT, 106) AS dateDT,
CONVERT(VARCHAR(10), dateDT, 126) AS dateDTShort,
(CASE WHEN dateDT < GETDATE() then 'PAST' else 'FUTURE' end) as TimeWhen,
countries,
regions
FROM DaysFixed
WHERE countries LIKE '%'+@selCountry+'%'
OR regions LIKE '%'+@selCountry+'%'
ORDER BY dateID
FOR XML PATH('datesDT'), ELEMENTS, TYPE, ROOT('root')
请注意,在这些示例中,
dateDT
列未应用任何函数。这是一个好习惯,尽管它对案例
语句没有影响。但是,当在where
子句中使用时,它会对性能产生很大影响。假设该字段是日期:
SELECT dateID,
CONVERT(VARCHAR(11), dateDT, 106) AS dateDT,
CONVERT(VARCHAR(10), dateDT, 126) AS dateDTShort,
(CASE WHEN dateDT < GETDATE() then 'PAST' else 'FUTURE' end) as TimeWhen,
countries,
regions
FROM DaysFixed
WHERE countries LIKE '%'+@selCountry+'%'
OR regions LIKE '%'+@selCountry+'%'
ORDER BY dateID
FOR XML PATH('datesDT'), ELEMENTS, TYPE, ROOT('root')
请注意,在这些示例中,
dateDT
列未应用任何函数。这是一个好习惯,尽管它对案例
语句没有影响。但是,当在where
子句中使用时,它会在性能上产生很大的差异。这非常完美-非常感谢您的快速帮助!我会尽快接受。这太完美了-非常感谢您的快速帮助!我会尽快接受。也谢谢你!也谢谢你!