2009-02-11 14 views

Respuesta

15

Una forma es cambiar getdate() a su nombre de la columna,

select dateadd(dd, datediff(dd, 0, getdate())+0, 0) 
1

Sí. Hay muchos formatos para elegir, así que lo vincularé en su lugar.

http://library.cirr.com/Microsoft/SQL-Server-v7/html/ca-co_1.htm

Si desea poner a cero el tiempo como su puesto implica, puede intentar esto:

select cast(convert(varchar, getdate(), 101) as datetime) 
+1

convertido (fecha y hora, convertir (varchar, getdate(), 101)) –

+0

enlace roto. Nuevo enlace para la página http://library.cirr.com/Microsoft/SQL-Server-v7/html/ca-co_1.htm – monkeypushbutton

1

convert (varchar, el campo de fecha/valor/etc, 101)

Esta es la forma más sencilla de obtener la fecha de una fecha y hora.

0
declare @CurrentDate datetime 
set @CurrentDate = dateadd(dd, datediff(dd, 0, getdate()), 0) 

O bien,

select dateadd(dd, datediff(dd, 0, MyDateColumn), 0) as DateOnly 
from tblX 
0

En mis búsquedas me encontré con la siguiente solución, se despoja de tiempo solo fuera del horario UTC, pero me pareció interesante, así que pensé que alguien más también lo haría:

FUNCTION TrimDate(@dt AS DATETIME) RETURNS DATETIME 
BEGIN 
    RETURN CAST(CAST((@dt - 0.500000038580247) AS INT) AS DATETIME) 
END 

Supongo que funciona rápidamente ya que todo lo que hace es redondear y fundir.

5

Aquí hay otra solución:

SELECT CAST(FLOOR(CAST(GETDATE() AS float)) AS smalldatetime) 
25

Por qué no convertir recta hasta la fecha:

select convert(date, getdate()) 

Este trunca días, no redondos. Para hacer esto redondas Días:

select convert(date, getdate() + 0.5) 
+1

Fácilmente la mejor respuesta por su simplicidad y claridad. –

+6

No si está utilizando SqlServer 2005 – TheMoot

+0

@TheMoot: ¿Por qué no? – nalply

Cuestiones relacionadas