SQL Server:多日期比较

时间:2015-03-12 07:55:21

标签: sql sql-server

你能帮我解决一下这个SQL Server查询:

我的逻辑是:Date now = (date1 OR date2 OR date3)

SELECT * 
FROM [HPM_QC_PCard]  
WHERE 
    CONVERT(DATE, GETDATE(), 1) = (CONVERT(DATE, [PRIMRY], 1) OR 
                                   CONVERT(DATE, [AUTO_UT_DATE], 1) OR 
                                   CONVERT(DATE, [XRAY_FIN_DATE], 1) OR 
                                   CONVERT(DATE, [HYDROTEST_DATE], 1) OR 
                                   CONVERT(DATE, [FINAL_INS_DATE], 1) )

2 个答案:

答案 0 :(得分:1)

使用Sql IN

SELECT * 
FROM [HPM_QC_PCard] 
WHERE 
   CONVERT(DATE, GETDATE(), 1) 
      IN (CONVERT(DATE, [PRIMRY], 1),
          CONVERT(DATE, [AUTO_UT_DATE], 1),
          CONVERT(DATE, [XRAY_FIN_DATE], 1),
          CONVERT(DATE, [HYDROTEST_DATE], 1),
          CONVERT(DATE, [FINAL_INS_DATE], 1)
         )

答案 1 :(得分:0)

您可以使用IN运算符。

  

确定指定的值是否与子查询中的任何值匹配   或列表。


案例中的示例:

SELECT * 
FROM   [HPM_QC_PCard] 
WHERE  CONVERT(DATE, GETDATE(), 1) IN
       (
          CONVERT(DATE, [PRIMRY], 1),
          CONVERT(DATE, [AUTO_UT_DATE], 1),
          CONVERT(DATE, [XRAY_FIN_DATE], 1),
          CONVERT(DATE, [HYDROTEST_DATE], 1),
          CONVERT(DATE, [FINAL_INS_DATE], 1)  
       )