Odpowiedzi:
Chyba chce sznurka.
select convert(varchar(10), '2011-02-25 21:17:33.933', 120)
120 tu mówi funkcję konwersji, które przekroczyły datę wejścia w następującym formacie : yyyy-mm-dd hh:mi:ss
.
W przypadku SQL Server 2008:
Convert(date, getdate())
Zapoznaj się z https://docs.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql
DATE
jest nowy w 2008 roku.
date
danych, dlatego renderowanie tego rozwiązania jest nieprawidłowe.
Najszybszy jest datediff
np
select dateadd(d, datediff(d,0, [datecolumn]), 0), other..
from tbl
Ale jeśli potrzebujesz tylko użyć wartości, możesz pominąć dateadd, np
select ...
WHERE somedate <= datediff(d, 0, getdate())
gdzie wyrażenie datediff(d, 0, getdate())
jest wystarczające, aby zwrócić dzisiejszą datę bez części czasu.
Użyj CAST (GETDATE () jako daty), który zadziałał dla mnie, proste.
CAST(order_date AS DATE)
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
W przypadku starszej wersji 2008 :
SELECT DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)
Jest trochę późno, ale użyj funkcji „curdate” ODBC (nawiasy kątowe „fn” to sekwencja ucieczki funkcji ODBC).
SELECT {fn curdate()}
Wynik: 2013-02-01
SELECT {fn curdate()} FROM (SELECT 1) AS T(X)
i spojrzysz na rzeczywisty plan wykonania (wersja xml), zobaczysz, że to, co jest faktycznie wykonane, jest CONVERT(varchar(10),getdate(),23)
. Tak typ danych tej funkcji ODBC jest varchar(10)
co oznacza, że jeśli chcesz porównać wynik z datetime
dostaniesz niejawna konwersja z varchar(10)
celu datetime
na sznurkuyyyy-mm-dd
. Ta niejawna konwersja zakończy się niepowodzeniem set dateformat dmy
.
Możesz też spróbować tego.
SELECT CONVERT(DATE, GETDATE(), 120)
Jeśli potrzebujesz czasu na zera, takie jak 2018-01-17 00:00:00.000
:
SELECT CONVERT(DATETIME, CONVERT(DATE, GETDATE()), 121)
Użycie jest proste:
convert(date, Btch_Time)
Przykład poniżej:
Stół:
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'
Jest już za późno, ale obserwowanie mnie zadziałało
declare @vCurrentDate date=getutcdate()
select @vCurrentDate
Gdy typem danych jest data, godziny zostaną obcięte
W PLSQL możesz używać
to_char(SYSDATE,'dd/mm/yyyy')
Najpierw przekonwertuj datę na liczbę zmiennoprzecinkową (która wyświetla wartość liczbową), następnie ROUND
liczbę na 0 miejsc po przecinku, a następnie przekonwertuj ją na datę i godzinę .
convert(datetime,round(convert(float,orderdate,101),0) ,101)
Spróbuj tego.
SELECT DATEADD(DD, 0, DATEDIFF(DD, 0, GETDATE()))