【问题标题】:How to select data from 30 days?如何选择30天的数据?
【发布时间】:2013-05-20 09:02:48
【问题描述】:

我有疑问:

SELECT name
FROM (
SELECT name FROM 
Hist_answer
WHERE id_city='34324' AND datetime >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH)
UNION ALL
SELECT name FROM 
Hist_internet
WHERE id_city='34324' AND datetime >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH)
) x
GROUP BY name ORDER BY name

DATE_SUB 是 MySQL 函数,我需要 MsSQL 2008 的函数

请告诉我如何使用 MsSQL 2008 选择 30 天的数据?

P.S.:datetime的数据类型是smalldatetime

【问题讨论】:

    标签: sql sql-server-2008 keyword smalldatetime


    【解决方案1】:

    你应该使用DATEADD 是 Sql server 所以如果尝试这个简单的选择你会看到效果

    Select DATEADD(Month, -1, getdate())
    

    结果

    2013-04-20 14:08:07.177
    

    在你的情况下试试这个查询

    SELECT name
    FROM (
    SELECT name FROM 
    Hist_answer
    WHERE id_city='34324' AND datetime >= DATEADD(month,-1,GETDATE())
    UNION ALL
    SELECT name FROM 
    Hist_internet
    WHERE id_city='34324' AND datetime >= DATEADD(month,-1,GETDATE())
    ) x
    GROUP BY name ORDER BY name
    

    【讨论】:

    • 再试一次,查询已更改,因为您上次复制
    【解决方案2】:

    试试这个:使用这个你可以选择最近 30 天的日期,

    SELECT DATEADD(DAY,-30,GETDATE())
    

    【讨论】:

      【解决方案3】:

      对于那些无法让 DATEADD 工作的人,请尝试以下方法:(NOW( ) - INTERVAL 1 MONTH)

      【讨论】:

        【解决方案4】:

        简单易用的短版:

        SELECT * 
        FROM [TableName] t
        WHERE t.[DateColumnName] >= DATEADD(month, -1, GETDATE())
        

        DATEADDGETDATE 在 SQL Server 2008 版本开始可用。 MSDN 文档:GETDATEDATEADD

        【讨论】:

          猜你喜欢
          • 2018-12-15
          • 2018-02-19
          • 1970-01-01
          • 2021-12-19
          • 2014-02-08
          • 2012-02-24
          • 2022-01-01
          • 2013-12-29
          • 1970-01-01
          相关资源
          最近更新 更多