Wenn ich ein Datum in SQL auswähle, wird es als 2011-02-25 21:17:33.933
zurückgegeben. Ich brauche aber nur den Date-Teil, also 2011-02-25
. Wie kann ich das machen?
Ich denke, er will eine Schnur
select convert(varchar(10), '2011-02-25 21:17:33.933', 120)
Für SQL Server 2008:
Convert(date, getdate())
Weitere Informationen hierzu finden Sie unter https://docs.Microsoft.com/de-de/sql/t-sql/functions/getdate-transact-sql
Der schnellste ist datediff
, z.
select dateadd(d, datediff(d,0, [datecolumn]), 0), other..
from tbl
Wenn Sie jedoch nur den Wert verwenden müssen, können Sie die Datendatei überspringen, z.
select ...
WHERE somedate <= datediff(d, 0, getdate())
wobei der Ausdruck datediff(d, 0, getdate())
ausreicht, um das heutige Datum ohne Zeitabschnitt zurückzugeben.
Verwenden Sie CAST (GETDATE () als Datum), das für mich einfach funktioniert hat.
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
sie können so verwenden
SELECT Convert(varchar(10), GETDATE(),120)
Für 2008 ältere Version:
SELECT DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)
Sie können dieses auch versuchen.
SELECT CONVERT(DATE, GETDATE(), 120)
Es ist etwas spät, aber verwenden Sie die Funktion ODBC "curdate" (spitze Klammern 'fn' ist die Escape-Sequenz der Funktion ODBC).
SELECT {fn curdate()}
Ausgabe: 2013-02-01
Konvertieren Sie es nach der Konvertierung in Datum zurück in Datumszeit, um bei Bedarf dieselbe Datumszeit beizubehalten
select Convert(datetime, Convert(date, getdate()) )
Verwendung ist einfach:
convert(date, Btch_Time)
Beispiel unten:
Tabelle:
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'
Wenn Sie einen Datumstyp als Datum zurückgeben möchten, verwenden Sie ihn
CONVERT(date, SYSDATETIME())
oder
SELECT CONVERT(date,SYSDATETIME())
oder
DECLARE @DateOnly Datetime
SET @DateOnly=CONVERT(date,SYSDATETIME())
In PLSQL können Sie verwenden
to_char(SYSDATE,'dd/mm/yyyy')
Falls Sie die Zeit brauchen, um Nullen zu sein:
SELECT CONVERT(DATETIME, CONVERT(DATE, GETDATE()), 120)
SELECT Datum ('2011-02-25 21: 17: 33.933') als Datum gibt uns 2011-02-25.
Arbeitete für mich. Hoffe, es funktioniert.
Wandeln Sie zuerst das Datum in Float um (wobei die Zahl angezeigt wird), dann ROUND
die Zahl in 0 Dezimalpunkte und konvertieren Sie diese in Datum/Uhrzeit.
convert(datetime,round(convert(float,orderdate,101),0) ,101)
Versuche dies.
SELECT DATEADD(DD, 0, DATEDIFF(DD, 0, GETDATE()))