Array
(
)

Truncar data do sistema...

Hebrao
   - 03 nov 2005

Olá amigos!

Tenho a seguinte dúvida:
Gostaria de saber se o SQL Server tem alguma funcao para truncar uma data, deixando a mesma sem a hora. Ex:

Getdate() = 01/01/2005 10:30:00

Gostaria de obter somente 01/01/2005.
No oracle, seria um trunc(sysdate). Existe algo semelhante no SQL?

PS: Não quero ficar fazendo datepart, convert, etc... Queria que o trabalho todo fosse feito pelo SQL (como no oracle).

Grato,

Heber

Bon Jovi
   - 03 nov 2005

Função prontinha assim nao tem, pelo menos até o MSSQL 2000. Entao terá que usar uma dessas funções de conversão sim. Mas crie uma função Trunc com isso pra não ficar repetindo código. Exemplos de conversão:

[size=9:711678d088]SELECT CAST(CONVERT(CHAR(8), CURRENT_TIMESTAMP, 112) AS DATETIME) AS DATA_SEM_HORA

SELECT DATEADD(DD, DATEDIFF(DD, 0, GETDATE()), 0) AS DATA_SEM_HORA

SELECT CAST(CAST(CAST(GETDATE() AS FLOAT) AS INT) AS DATETIME) AS DATA_SEM_HORA

SELECT CONVERT(VARCHAR(10), GETDATE(), 103) AS DATA_SEM_HORA_STRING[/size:711678d088]

Teste aí.