2010-12-30 11 views
1

Ich verwende die folgende Anweisung Zufallsdaten zu generieren:Datetime ohne Zeit!

DATEADD(day, DATEDIFF(day, 1, GETDATE()) - 1 - FLOOR(RAND(CAST(NEWID() AS binary(4))) * 365.25 * 90), 10) 

Aber ich folgendes Format bekommen:

1974.01.28 00: 00: 00.000

Wie kann ich Zeit Teil 00: 00: 00.000 loswerden?

Antwort

4

Wenn Sie SQL Server 2008 verwenden, verwenden Sie den date-Datentyp anstelle von datetime, andernfalls können Sie nicht. Der datetime Datentyp hat immer eine Zeitkomponente gespeichert.

Sie können es jedoch für Anzeigezwecke entfernen, indem Sie es in einen Zeichendatentyp umwandeln und ein Stilargument übergeben. z.B.

select CONVERT(varchar,GETDATE(),105) 

Returns

30-12-2010 

ein recht umfassend Spickzettel zu diesen Formaten is here

0

Sie es nicht als Datetime halten können, es sei denn, Sie SQL Server 2008 haben und verwenden Sie den Date Datentyp

2

Sie können den DATE-Datentyp anstelle der DATETIME-Datenzeit verwenden, wenn Sie SQL Server 2008 verwenden.

Oder Sie können die Funktion CONVERT verwenden, um das Datum in einen String-Datentyp (VARCHAR, CHAR, usw.) zu konvertieren.

Zum Beispiel

CONVERT(VARCHAR, GETDATE(), 101) 

dieses

12/29/2010 

Mehr zu CONVERT Formate

+0

erzeugt, wenn Sie das tun werden, empfehle ich Ihnen verwenden die ISO-YYYY/MM/DD-Format. .. –