uhrzeit Wie nur das Datum von einem SQL Server DateTime-Datentyp zurückgegeben wird




sql datum uhrzeit abfragen (20)

SELECT GETDATE()

2008-09-22 15:24:13.790 : 2008-09-22 15:24:13.790

Ich möchte dieses Datum Teil ohne die Zeit Teil: 2008-09-22 00:00:00.000

Wie kann ich das bekommen?

https://code.i-harness.com


Wenn Sie SQL Server 2012 oder höher verwenden ,

Verwenden Sie die Funktion Format() .

Es gibt bereits mehrere Antworten und Formatierungstypen für SQL Server. Aber die meisten Methoden sind etwas mehrdeutig und es wäre schwierig für Sie, sich die Zahlen für den Formattyp oder die Funktionen in Bezug auf das spezifische Datumsformat zu merken. Deshalb gibt es in den nächsten Versionen von SQL Server eine bessere Option.

FORMAT ( value, format [, culture ] )

Die Option "Kultur" ist sehr nützlich, da Sie das Datum gemäß Ihren Zuschauern angeben können.

Sie müssen sich an d (für kleine Muster) und D (für lange Muster) erinnern.

1. "d" - Kurzes Datumsmuster.

2009-06-15T13:45:30 -> 6/15/2009 (en-US)
2009-06-15T13:45:30 -> 15/06/2009 (fr-FR)
2009-06-15T13:45:30 -> 2009/06/15 (ja-JP)

2. "D" - langes Datumsmuster.

2009-06-15T13:45:30 -> Monday, June 15, 2009 (en-US)
2009-06-15T13:45:30 -> 15 июня 2009 г. (ru-RU)
2009-06-15T13:45:30 -> Montag, 15. Juni 2009 (de-DE)

Weitere Beispiele in der Abfrage.

DECLARE @d DATETIME = '10/01/2011';
SELECT FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result'
      ,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result'
      ,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result'
      ,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result'; 

SELECT FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result'
      ,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result'
      ,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result'
      ,FORMAT ( @d, 'D', 'zh-cn' ) AS 'Chinese (Simplified PRC) Result';

US English Result Great Britain English Result  German Result Simplified Chinese (PRC) Result
----------------  ----------------------------- ------------- -------------------------------------
10/1/2011         01/10/2011                    01.10.2011    2011/10/1

US English Result            Great Britain English Result  German Result                    Chinese (Simplified PRC) Result
---------------------------- ----------------------------- -----------------------------  ---------------------------------------
Saturday, October 01, 2011   01 October 2011               Samstag, 1. Oktober 2011        2011年10月1日

Wenn Sie mehr Formate wünschen, können Sie gehen zu:

  1. Standardformat für Datum und Uhrzeit
  2. Benutzerdefinierte Formatvorlagen für Datum und Uhrzeit

Ab SQL Server 2012 können Sie dies tun:

SELECT FORMAT(GETDATE(), 'yyyy-MM-dd 00:00:00.000')


Auf SQL Server 2000

CAST(
(
    STR( YEAR( GETDATE() ) ) + '/' +
    STR( MONTH( GETDATE() ) ) + '/' +
    STR( DAY( GETDATE() ) )
)
AS DATETIME)

Bei Verwendung von SQL 2008 und höher:

select cast(getdate() as date)

Datum:

SELECT CONVERT(date, GETDATE())
SELECT CAST(GETDATE() as date)

Zeit:

SELECT CONVERT(time , GETDATE() , 114)
SELECT CAST(GETDATE() as time)

Dies fehlte in allen Antworten, ist vielleicht nicht die effizienteste, aber sehr einfach zu schreiben und zu verstehen, kein Stil benötigt, keine komplexen Datumsfunktionen.

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

Ich denke, das würde in Ihrem Fall funktionieren:

CONVERT(VARCHAR(10),Person.DateOfBirth,111) AS BirthDate
//here date is obtained as 1990/09/25

Okay, obwohl ich etwas spät bin :), Hier ist die andere Lösung.

SELECT CAST(FLOOR(CAST(GETDATE() AS FLOAT)) as DATETIME)

Ergebnis

2008-09-22 00:00:00.000

Und wenn Sie SQL Server 2012 und höher verwenden, können Sie die Funktion FORMAT() wie FORMAT() :

SELECT FORMAT(GETDATE(), 'yyyy-MM-dd')

Sie können Folgendes für das Datum und die Formatierung des Datums verwenden:

DATENAME => Gibt eine Zeichenfolge zurück, die den angegebenen Datumsteil des angegebenen Datums darstellt

DATEADD => Die DATEPART() -Funktion wird verwendet, um einen einzelnen Teil eines Datums / einer Uhrzeit zurückzugeben, z. B. Jahr, Monat, Tag, Stunde, Minute usw.

DATEPART => Gibt eine Ganzzahl zurück, die den angegebenen Datumsteil des angegebenen Datums darstellt.

CONVERT() => Die Funktion CONVERT() ist eine allgemeine Funktion, die einen Ausdruck eines Datentyps in einen anderen konvertiert. Die Funktion CONVERT() kann verwendet werden, um Datums- / CONVERT() in verschiedenen Formaten anzuzeigen.



Um das angezeigte Ergebnis zu erhalten, verwende ich den folgenden Befehl.

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

Ich halte es für nützlich.


Verwenden Sie FLOOR () - nur Schnittzeit Teil.

SELECT CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME)

Wenn Sie die Ergebnisse einer Spalte oder einer Variablen zuweisen, geben Sie ihr den Typ DATE und die Konvertierung ist implizit.

DECLARE @Date DATE = GETDATE()   

SELECT @Date   --> 2017-05-03

Wenn Sie in Varchar-Datentyp Ergebnis benötigen, sollten Sie durchlaufen

SELECT CONVERT(DATE, GETDATE()) --2014-03-26
SELECT CONVERT(VARCHAR(10), GETDATE(), 111) --2014/03/26

das ist bereits oben erwähnt

Wenn Sie ein Datums- und Uhrzeitformat benötigen, sollten Sie eine der folgenden Abfragen durchführen

1) SELECT CONVERT(DATETIME,CONVERT(VARCHAR(10), GETDATE(), 111)) als OnlyDate --2014-03-26 00: 00: 00.000

2) SELECT CONVERT(DATETIME,CONVERT(VARCHAR(10), GETDATE(), 112)) als OnlyDate --2014-03-26 00: 00: 00.000

3)

 DECLARE  @OnlyDate DATETIME
   SET @OnlyDate = DATEDIFF(DD, 0, GETDATE())
   SELECT @OnlyDate AS OnlyDate

--2014-03-26 00: 00: 00.000


Datum (Datum und Uhrzeit) und DATE_FORMAT (Datum und Uhrzeit, "% Y-% m-% d") geben beide nur das Datum von Datum und Uhrzeit zurück


Für die Rückgabe im Datumsformat

CAST (Datum des Bestelldatums AS)

Der obige Code funktioniert in SQL Server 2010

Es wird wie 12/12/2013 zurückkehren

Verwenden Sie für SQL Server 2012 den folgenden Code

CONVERT(VARCHAR(10), OrderDate , 111)

DECLARE @yourdate DATETIME = '11/1/2014 12:25pm'    
SELECT CONVERT(DATE, @yourdate)

SELECT * FROM tablename WHERE CAST ([my_date_time_var] AS DATE)= '8/5/2015'

SELECT CONVERT(VARCHAR,DATEADD(DAY,-1,GETDATE()),103) --21/09/2011

SELECT CONVERT(VARCHAR,DATEADD(DAY,-1,GETDATE()),101) --09/21/2011

SELECT CONVERT(VARCHAR,DATEADD(DAY,-1,GETDATE()),111) --2011/09/21

SELECT CONVERT(VARCHAR,DATEADD(DAY,-1,GETDATE()),107) --Sep 21, 2011

SELECT CONVERT(datetime, CONVERT(varchar, GETDATE(), 101))






datetime