risposta-alla-domanda-sullo-sviluppo-web-bd.com

Acquisire la data corrente in SQL Server?

Come posso ottenere la data corrente in MS-SQL Server 2008 R2?

Il formato della colonna nel mio database è DATETIME e le date sono memorizzate nel seguente formato:

+++++++++++++ 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   |
|                             |
+++++++++++++++++++++++++++++++

Ho cercato ma non sono riuscito a trovare il modo di ottenere la data in questo formato (ad esempio, che ha il tempo associato in 00:00:00.00). Ho trovato la funzione GETDATE() ma che fornisce l'ora corrente insieme alla data, quello che voglio è ottenere la data nel seguente formato: CurrentDate 00:00:00.00

Come posso ottenere questo?

69
Kamran Ahmed
SELECT CAST(GETDATE() AS DATE)

Restituisce la data corrente con la parte dell'ora rimossa.

DATETIMEs non sono "memorizzati nel seguente formato". Sono memorizzati in un formato binario.

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

Il formato di visualizzazione nella domanda è indipendente dalla memoria.

La formattazione in un particolare formato di visualizzazione dovrebbe essere effettuata dalla tua applicazione.

112
Martin Smith

Poiché stai utilizzando SQL Server 2008, segui la risposta di Martin.

Se si trova la necessità di farlo in SQL Server 2005 in cui non si ha accesso al tipo di colonna Date, utilizzare:

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

SQLFiddle

14
Bridge