【问题标题】:Search between dates and times in SQL Server 2008在 SQL Server 2008 中的日期和时间之间进行搜索
【发布时间】:2010-03-17 13:56:59
【问题描述】:

我需要在日期和时间之间进行搜索。

例如,在date: 30/02/2007, time: 10:32date: 21/06/2008, time: 14:19 之间

对此最简单的查询是什么?

提前致谢。

【问题讨论】:

    标签: sql-server-2008


    【解决方案1】:

    您应该查看 SQL Server 中可用的日期时间格式:http://msdn.microsoft.com/en-us/library/ms187928.aspx

    yyyy-mm-dd hh:mi 是你应该使用的:

    尝试:

    SELECT
        *
        FROM Records
        WHERE DateCreated>='2007-02-30 10:32' AND DateCreated<='2008-06-21 14:19'
    

    在上述查询中,如果DateCreated 是日期时间列,则字符串将转换为日期时间数据类型。并且查询将起作用。

    您可以创建日期时间数据类型的局部变量并使用如下查询:

    DECLARE @StartDate datetime, @EndDate datetime
    
    SELECT @StartDate='2007-02-30 10:32', @EndDate='2008-06-21 14:19'
    
    SELECT
        *
        FROM Records
        WHERE DateCreated>=@StartDate AND DateCreated<=@EndDate
    

    我喜欢使用 = 或 >,因为它比 BETWEEN 更灵活,并迫使您考虑是否包含端点。

    要考虑的另一件事是获取一整天的所有数据:

    DECLARE @StartDate datetime, @EndDate datetime
    
    --set the days you want
    SELECT @StartDate='2007-02-30 10:32', @EndDate='2008-06-21 14:19'
    
    --remove the time
    SELECT @StartDate=DATEADD(day,DATEDIFF(day,0,@StartDate),0), @EndDate=DATEADD(day,DATEDIFF(day,0,@EndDate),0)
    
    --get everything on '2007-02-30' up to the end of the day on '2008-06-21'
    SELECT
        *
        FROM Records
        WHERE DateCreated>=@StartDate AND DateCreated<@EndDate+1
    

    【讨论】:

    • 已经快十年了,没有人费心纠正这个问题?该死的,所以!这是yyyy-MM-dd hh:mm:P
    • 您可以随时编辑答案,不是吗? @AswinRamakrishnan
    【解决方案2】:

    试试这个:

    SELECT
        *
    FROM
        Records
    WHERE
        DateCreated BETWEEN @Date1 AND @Date2
    

    【讨论】:

    • 感谢您的帮助,但是如何写日期和时间?日期:30/02/2007,时间:10:32 和日期:21/06/2008,时间:14:19
    • 在上面的例子中,@Date1 和@Date2 变量的类型是 datetime 这意味着你可以像这样为它们分配日期和时间:DECLARE @Date1 datetime SET @Date1 = '2010-03-18 10:52'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多