текущей Простой SQL-запрос DateTime




текущая дата sql (7)

Вам нужны цитаты вокруг строки, которую вы пытаетесь передать в качестве даты, и вы также можете использовать BETWEEN здесь:

 SELECT *
   FROM TABLENAME
  WHERE DateTime BETWEEN '04/12/2011 12:00:00 AM' AND '05/25/2011 3:53:04 AM'

См. Ответ на следующий вопрос для примеров того, как явным образом преобразовывать строки в даты при указании формата:

Преобразование строки Sql сервера в дату

Как запросить поле базы данных DateTime в определенном диапазоне?

Я использую SQL SERVER 2005

Код ошибки ниже

SELECT * 
  FROM TABLENAME 
 WHERE DateTime >= 12/04/2011 12:00:00 AM 
   AND DateTime <= 25/05/2011 3:53:04 AM

Обратите внимание, что мне нужно получить строки в определенном временном диапазоне. Пример: временной интервал 10 минут.

В настоящее время SQL возвращается с неправильным синтаксисом около «12».


Это сработало для меня как в SQL Server 2005, так и в 2008 году:

SELECT * from TABLE
WHERE FIELDNAME > {ts '2013-02-01 15:00:00.001'}
  AND FIELDNAME < {ts '2013-08-05 00:00:00.000'}

SELECT * 
  FROM TABLENAME 
 WHERE [DateTime] >= '2011-04-12 12:00:00 AM'
   AND [DateTime] <= '2011-05-25 3:35:04 AM'

Если это не сработает, напишите свой стол и отправьте его здесь. это поможет нам быстро получить правильный ответ.


select getdate()

O/P
----
2011-05-25 17:29:44.763

select convert(varchar(30),getdate(),131) >= '12/04/2011 12:00:00 AM'

O/P
---
22/06/1432  5:29:44:763PM

Вы можете выполнить код ниже

SELECT Time FROM [TableName] where DATEPART(YYYY,[Time])='2018' and DATEPART(MM,[Time])='06' and DATEPART(DD,[Time])='14

Вы пропустили знак одиночной кавычки:

SELECT * 
FROM TABLENAME 
WHERE DateTime >= '12/04/2011 12:00:00 AM' AND DateTime <= '25/05/2011 3:53:04 AM'

Кроме того, рекомендуется использовать формат ISO8601 YYYY-MM-DDThh: mm: ss.nnn [Z], так как он не будет зависеть от локальной культуры вашего сервера.

SELECT *
FROM TABLENAME 
WHERE 
    DateTime >= '2011-04-12T00:00:00.000' AND 
    DateTime <= '2011-05-25T03:53:04.000'

Другие уже заявили, что литераторы даты в SQL Server требуют окружения одинарными кавычками, но я хотел бы добавить, что вы можете решить проблему смешивания месяца / дня двумя способами (то есть, проблема, когда 25 рассматривается как месяц и 5 день):

  1. Используйте явное Convert(datetime, 'datevalue', style) где style является одним из числовых кодов стиля, см. « Cast and Convert» . Параметр стиля предназначен не только для преобразования дат в строки, но также для определения того, как строки анализируются по датам.

  2. Используйте регистро-независимый формат для дат, хранящихся в виде строк. Тот, который я использую, - «yyyymmdd hh: mm: ss», или рассматривает формат ISO, yyyy-mm-ddThh:mi:ss.mmm . На основе экспериментов нет другой строки, не содержащей языка. (Хотя я думаю, что вы можете включить часовой пояс в конце, см. Выше ссылку).





sql-server-2008