A obter a data actual no servidor SQL? [duplicado]

Esta pergunta já tem uma resposta:

Como posso obter a data actual no servidor MS-SQL 2008 R2?

o formato da coluna na minha base de dados é DATETIME e as datas são armazenadas no seguinte 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   |
|                             |
+++++++++++++++++++++++++++++++
Eu procurei, mas ... não foi possível encontrar a forma de obter a data neste formato (ou seja, que tem o tempo associado a ele em 00:00:00.00). Eu encontrei a função GETDATE() mas que fornece a hora atual, juntamente com a data também, o que eu quero é obter a data no seguinte formato: CurrentDate 00:00:00.00

Como posso obter isto?

Author: DineshDB, 2013-10-05

2 answers

SELECT CAST(GETDATE() AS DATE)

Devolve a data actual com a parte do tempo removida.

DATETIMEs não são "armazenados no seguinte formato". Eles são armazenados em um formato binário.

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

O formato de visualização na questão é independente do armazenamento.

A formatação num formato específico deve ser feita pela sua aplicação.

 102
Author: Martin Smith, 2013-10-05 11:51:28

Como você está usando o servidor SQL 2008, vá com a resposta de Martin.

Se tiver de o fazer no SQL Server 2005, onde não tem acesso ao tipo de coluna Date, eu usaria:

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

SQLFiddle

 14
Author: Bridge, 2013-10-05 11:55:36