Krijg je de huidige datum in SQL Server?

Hoe krijg ik de huidige datum in MS-SQL Server 2008 R2?

Het formaat van de kolom in mijn database is DATETIMEen datums worden opgeslagen in het volgende formaat:

+++++++++++++ Vrdate ++++++++++
|                             |
|   2012-11-18 00:00:00.000   |
|   2012-11-19 00:00:00.000   |
|   2013-11-18 00:00:00.000   |
|   2012-12-01 00:00:00.000   |
|   2010-10-09 00:00:00.000   |
|   2012-11-11 00:00:00.000   |
|                             |
+++++++++++++++++++++++++++++++

Ik heb gezocht maar kon de manier niet vinden om de datum in dit formaat te krijgen (d.w.z. waaraan de tijd is gekoppeld in 00:00:00.00). Ik heb de functie GETDATE()gevonden, maar die geeft ook de huidige tijd samen met de datum, wat ik wil is de datum in het volgende formaat krijgen: CurrentDate 00:00:00.00

Hoe kan ik dit krijgen?


Antwoord 1, autoriteit 100%

SELECT CAST(GETDATE() AS DATE)

Retourneert de huidige datum met het tijdsgedeelte verwijderd.

DATETIMEs worden niet “opgeslagen in het volgende formaat”. Ze worden opgeslagen in een binair formaat.

SELECT CAST(GETDATE() AS BINARY(8))

Het weergaveformaat in de vraag is onafhankelijk van opslag.

Formatteren in een bepaalde weergave-indeling moet door uw toepassing worden gedaan.


Antwoord 2, autoriteit 12%

Omdat je SQL Server 2008 gebruikt, ga je voor Martins antwoord.

Als je merkt dat je het moet doen in SQL Server 2005 waar je geen toegang hebt tot het kolomtype Date, zou ik het volgende gebruiken:

SELECT DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)

SQLFiddle

Other episodes