Как вы извлекаете только дату из даты и времени в T-Sql? - PullRequest
6 голосов
/ 22 мая 2010

Я запускаю выборку по столбцу datetime в SQL Server 2005. Я могу выбрать только дату из этого столбца datetime?

Ответы [ 5 ]

7 голосов
/ 22 мая 2010

Лучший способ:

   SELECT DATEADD(day, DATEDIFF(Day, 0, @ADate), 0) 

Это связано с тем, что внутри SQL Server хранит все даты в виде двух целых чисел, первая из которых - **** количество дней *** с 1 января1900. (вторая часть - это временная часть, сохраняемая как количество секунд с полуночи. (Секунды для SmallDateTime с или миллисекунды для DateTime с)
Лучше использовать приведенное выше выражение, поскольку оно избегает всех преобразований, непосредственно считывая и получая доступ к этому первому целому числу во внутреннем представлении дат без необходимости выполнять какую-либо обработку ... два нуля в вышеприведенном выражении (которые представляют 1 января 1900 года), также непосредственно используются без обработки или преобразования, потому что онисоответствует внутреннему представлению сервера SQL даты 1 января 1900 года точно в том виде, в котором оно представлено (в виде целого числа) ..

* ПРИМЕЧАНИЕ. На самом деле количество границ даты (полуночи), которые вы должны пересечь, чтобы получить из одногосвидание с другим.

5 голосов
/ 22 мая 2010

Да , используя функцию преобразования. Например:

select getdate(), convert(varchar(10),getdate(),120)

РЕЗУЛЬТАТЫ:

----------------------- ----------
2010-05-21 13:43:23.117 2010-05-21
1 голос
/ 22 мая 2010

Также может быть полезна функция Datepart ():

http://msdn.microsoft.com/en-us/library/ms174420(SQL.90).aspx

1 голос
/ 22 мая 2010

Вы можете использовать функции:

  1. day(date)
  2. month(date)
  3. year(date)
0 голосов
/ 22 мая 2010
DECLARE @dToday DATETIME
SET @dToday = CONVERT(nvarchar(20), GETDATE(), 101)
SELECT @dToday AS Today

Возвращает сегодняшнюю дату в 12:00: «2010-05-21 00: 00: 00.000» Затем вы можете использовать переменную @dToday в запросе по мере необходимости

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...