16 ответов:
для SQL Server 2008:
Convert(date, getdate())пожалуйста, обратитесь к https://docs.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql
самый быстрый-это
datediff, например,select dateadd(d, datediff(d,0, [datecolumn]), 0), other.. from tblно если вам нужно только использовать значение, то вы можете пропустить dateadd, например
select ... WHERE somedate <= datediff(d, 0, getdate())где выражение
datediff(d, 0, getdate())достаточно, чтобы вернуть сегодняшнюю дату без часть времени.
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
немного поздно, но используйте функцию ODBC "curdate" (угловые скобки " fn " - это escape-последовательность функции ODBC).
SELECT {fn curdate()}выход:
2013-02-01
преобразуйте его обратно в datetime после преобразования в date, чтобы сохранить тот же datatime, если это необходимо
select Convert(datetime, Convert(date, getdate()) )
сначала преобразуйте дату в float (которая отображает числовое значение), затем
ROUNDчисло до 0 десятичных знаков, а затем преобразовать его в datetime.convert(datetime,round(convert(float,orderdate,101),0) ,101)
Если вы хотите вернуть тип даты как только дата использования
CONVERT(date, SYSDATETIME())или
SELECT CONVERT(date,SYSDATETIME())или
DECLARE @DateOnly Datetime SET @DateOnly=CONVERT(date,SYSDATETIME())
использовать простой:
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'
выберите дату('2011-02-25 21:17:33.933') дата даст нам 2011-02-25.
работал для меня. Надеюсь, это сработает.
Comments