Как выбрать дату без времени в SQL

Когда я выбираю дату в SQL, он возвращается как 2011-02-25 21:17:33.933. Но мне нужна только часть Date, то есть 2011-02-25. Как я могу это сделать?

Ответ 1

Я думаю, он хочет строку

select convert(varchar(10), '2011-02-25 21:17:33.933', 120)

Ответ 3

Самый быстрый - datediff, например

select dateadd(d, datediff(d,0, [datecolumn]), 0), other..
from tbl

Но если вам нужно использовать только значение, вы можете пропустить dateadd, например,

select ...
WHERE somedate <= datediff(d, 0, getdate())

где выражения datediff(d, 0, getdate()) достаточно, чтобы вернуть сегодняшнюю дату без временной части.

Ответ 4

Используйте CAST (GETDATE() в качестве даты), который работал у меня простым.

Ответ 6

вы можете использовать это как

SELECT Convert(varchar(10), GETDATE(),120) 

Ответ 7

Для старой версии 2008:

SELECT DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)

Ответ 8

Это немного поздно, но используйте функцию "curdate" ODBC (угловые скобки "fn" - это escape-последовательность функции ODBC).

SELECT {fn curdate()} 

Выход: 2013-02-01

Ответ 9

Вы также можете попробовать это.

SELECT CONVERT(DATE, GETDATE(), 120)

Ответ 10

Использование прост:

convert(date, Btch_Time)

Пример ниже:

Таблица:

Efft_d       Loan_I  Loan_Purp_Type_C   Orig_LTV    Curr_LTV    Schd_LTV    Un_drwn_Bal_a      Btch_Time            Strm_I  Btch_Ins_I
2014-05-31  200312500   HL03             NULL         1.0000    1.0000         1.0000      2014-06-17 11:10:57.330  1005    24851e0a-53983699-14b4-69109


Select * from helios.dbo.CBA_SRD_Loan where Loan_I in ('200312500') and convert(date, Btch_Time) = '2014-06-17'

Ответ 11

Преобразуйте его обратно в datetime после преобразования в date, чтобы сохранить то же время данных, если это необходимо

select Convert(datetime, Convert(date, getdate())  )

Ответ 12

В случае, если вам нужно время, чтобы быть нулями:

SELECT CONVERT(DATETIME, CONVERT(DATE, GETDATE()), 120)

Ответ 13

В PLSQL вы можете использовать

to_char(SYSDATE,'dd/mm/yyyy')

Ответ 14

Сначала преобразуйте дату в float (которая отображает числовое значение), затем ROUND числовое значение до 0 десятичных точек, затем преобразуйте его в datetime.

convert(datetime,round(convert(float,orderdate,101),0) ,101)

Ответ 15

Если вы хотите вернуть тип даты как использовать только дату,

CONVERT(date, SYSDATETIME())

или

SELECT CONVERT(date,SYSDATETIME()) 

или

DECLARE @DateOnly Datetime
SET @DateOnly=CONVERT(date,SYSDATETIME())

Ответ 16

Попробуйте это.

SELECT DATEADD(DD, 0, DATEDIFF(DD, 0, GETDATE()))

Ответ 17

SELECT date ('2011-02-25 21:17: 33.933'), поскольку дата предоставит нам 2011-02-25.

Работал для меня. Надеюсь, что это сработает.