tipo - obtener mes y año de una fecha sql
¿Cómo obtengo solo la fecha cuando uso MSSQL GetDate()? (7)
Aquí tienes algunas soluciones;)
http://www.bennadel.com/blog/122-Getting-Only-the-Date-Part-of-a-Date-Time-Stamp-in-SQL-Server.htm
Esta pregunta ya tiene una respuesta aquí:
DELETE from Table WHERE Date > GETDATE();
GETDATE () incluye tiempo. En lugar de conseguir
2011-01-26 14:58:21.637
Como puedo conseguir:
2011-01-26 00:00:00.000
Es una base de datos específica. No ha especificado qué motor de base de datos está utilizando.
por ejemplo, en PostgreSQL haces cast (myvalue como date).
Ligero sesgo a SQL Server
- El mejor enfoque para eliminar la parte de tiempo de datetime en SQL Server
- La forma más eficiente en SQL Server para obtener la fecha de fecha + hora?
Resumen
DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
SQL Server 2008 tiene el tipo de date
sin embargo. Entonces solo usa
CAST(GETDATE() AS DATE)
Editar: para agregar un día, compare con el día anterior a "cero"
DATEADD(day, DATEDIFF(day, -1, GETDATE()), 0)
De cyberkiwi:
Una alternativa que no involucra 2 funciones es (el +1 puede estar dentro o entre los corchetes).
DATEDIFF(DAY, 0, GETDATE() +1)
DateDiff
devuelve un número, pero a todos los efectos esto funcionará como una fecha donde sea que pretenda usar esta expresión, excepto convertirla a VARCHAR directamente, en cuyo caso usted habría utilizado el enfoque CONVERTIR directamente en GETDATE (), por ejemplo
convert(varchar, GETDATE() +1, 102)
Para SQL Server 2008, la mejor manera de indexar es
DELETE from Table WHERE Date > CAST(GETDATE() as DATE);
Para las versiones anteriores de SQL Server, las matemáticas de fecha funcionarán más rápido que una conversión a varchar. Incluso la conversión a varchar puede darle un resultado incorrecto, debido a la configuración regional.
DELETE from Table WHERE Date > DATEDIFF(d, 0, GETDATE());
Nota: no es necesario ajustar el DATEDIFF
con otro DATEADD
Puedes usar
DELETE from Table WHERE Date > CONVERT(VARCHAR, GETDATE(), 101);
CONVERT(varchar,GETDATE(),102)
SELECT CONVERT(DATETIME, CONVERT(varchar(10), GETDATE(), 101))