Когда я выбираю дату в SQL, он возвращается как 2011-02-25 21:17:33.933
. Но мне нужна только часть Date, то есть 2011-02-25
. Как я могу это сделать?
Как выбрать дату без времени в SQL
Ответ 1
Я думаю, он хочет строку
select convert(varchar(10), '2011-02-25 21:17:33.933', 120)
Ответ 2
Для SQL Server 2008:
Convert(date, getdate())
Пожалуйста, обратитесь к https://docs.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql
Ответ 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() в качестве даты), который работал у меня простым.
Ответ 5
CAST(
FLOOR(
CAST( GETDATE() AS FLOAT )
)
AS DATETIME
)
http://www.bennadel.com/blog/122-Getting-Only-the-Date-Part-of-a-Date-Time-Stamp-in-SQL-Server.htm
Ответ 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.
Работал для меня. Надеюсь, что это сработает.