Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Търсене между дати и часове в SQL Server 2008

трябва да разгледате наличните формати за дата и час в 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'

в горната заявка низовете ще бъдат преобразувани в тип данни datetime, ако DateCreated е колона за дата и час. и заявката ще работи.

можете да създадете локални променливи от тип данни datetime и да използвате заявка като:

DECLARE @StartDate datetime, @EndDate datetime

SELECT @StartDate='2007-02-30 10:32', @EndDate='2008-06-21 14:19'

SELECT
    *
    FROM Records
    WHERE DateCreated>[email protected] AND DateCreated<[email protected]

Харесва ми да използвам <, <=,>=или>, защото позволява повече гъвкавост от 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>[email protected] AND DateCreated<@EndDate+1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преобразувайте „datetimeoffset“ в „datetime2“ в SQL Server (T-SQL примери)

  2. Преобразувайте редовете в колони с помощта на „Pivot“ в SQL Server

  3. 6 начина за свързване на низ и число в SQL Server

  4. Използвайте TYPEPROPERTY() за връщане на информация за тип данни в SQL Server

  5. Защо съхранената процедура е по-бърза от Query