Fechas SQL
Quitarle la hora a una fecha (ponerla a 00:00:0)
select convert(DATETIME,convert(VARCHAR,Fecha,112),112) AS Fecha from log
Quitarle la hora a una fecha
CONVERT(nvarchar(10),CreacionFecha,101)
Modificar una fecha:
Puede añadirse o quitarse días, horas, minutos, años, etc:
DATEADD(day,1,fecha)
datepart Abreviaturas
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
weekday dw, w
hour hh
minute mi, n
second ss, s
millisecond ms
microsecond mcs
nanosecond ns
Funciones que obtienen partes de la fecha y hora
Tipo de datos
Función Sintaxis Valor devuelto devuelto Determinismo
DATENAME DATENAME ( datepart , Devuelve una cadena de caracteres que representa el datepart especificado de la nvarchar No determinista
date ) fecha especificada.
DATEPART DATEPART ( datepart , Devuelve un entero que representa el datepart especificado del date especificado. int No determinista
date )
DAY DAY ( date ) Devuelve un entero que representa la parte del día de date especificado. int Determinista
MONTH MONTH ( date ) Devuelve un entero que representa la parte del mes de un date especificado. int Determinista
YEAR YEAR ( date ) Devuelve un entero que representa la parte del año de un date especificado. int Determinista
Funciones que obtienen diferencias de fecha y hora
Tipo de datos
Función Sintaxis Valor devuelto devuelto Determinismo
DATEDIFF DATEDIFF ( datepart , startdate , Devuelve el número de límites datepart de fecha y hora entre dos fechas int Determinista
enddate ) especificadas.
Funciones que modifican valores de fecha y hora
Función Sintaxis Valor devuelto Tipo de datos devuelto Determinismo
DATEADD DATEADD (datepart , Devuelve un nuevo valor datetime agregando un intervalo al El tipo de datos del argumento Determinista
number , date ) datepart especificado del dateespecificado. date.
SWITCHOFFSET SWITCHOFFSET SWITCH OFFSET cambia el ajuste de zona horaria de un valor datetimeoffset con la precisión Determinista
(DATETIMEOFFSET , DATETIMEOFFSET y conserva el valor UTC. fraccionaria de DATETIMEOFFSET
time_zone)
TODATETIMEOFFSET TODATETIMEOFFSET TODATETIMEOFFSET transforma un valor datetime2 en un valor datetimeoffset con la precisión Determinista
(expression , time_zone) datetimeoffset. El valor datetime2 se interpreta en la hora local fraccionaria del argumento
para el valor time_zone especificado. datetime
Ejemplos de consultas de SQL con fechas:
Sql=”SELECT CONVERT(nvarchar(10),CreacionFecha,101) As Fecha
sql=sql& "FROM Billete "
sql=sql& "WHERE (CreacionFecha >= CONVERT(DATETIME,'"
sql=sql & Format(CDate(txtDesde.Text), "yyyy/MM/dd") & " 00:00:00', 102)) "
sql=sql & "AND (CreacionFecha <= CONVERT(DATETIME,'"
sql=sql & Format(CDate(txtHasta.Text), "yyyy/MM/dd") & " 00:00:00', 102)) AND "
sql=sql & "(Cancelado = 0) AND (Cliente=" & txtCliente.Text
sql=sql & ") ORDER BY CreacionFecha,NumeroBillete "
Mostrar intervalo del mes actual:
txtHasta.Text = Format(Now, "d/M/yyyy")
txtDesde.Text = Format(DateSerial(Year(Now), Month(Now), 1), "d/M/yyyy")
SUBCONSULTAS:
SELECT B.Cliente,B.NumeroBillete,B.Localizador,B.CreacionFecha,B.Titular,P.Contacto, P.Comentario
FROM Billete As B JOIN
(SELECT PNR.Localizador,PNR.Contacto,PNR.Comentario From
PNR JOIN
(SELECT Localizador, Max(Version) As version
from PNR
WHERE Localizador=ANY (
SELECT Localizador
FROM Billete
WHERE Cliente=3225 and CreacionFecha >= CONVERT(DATETIME,'2009/02/17 00:00:00', 102)
)
GROUP BY Localizador) V
ON PNR.Localizador=V.Localizador And PNR.Version=V.Version)P
ON B.Localizador=P.Localizador
ORDER BY B.Cliente,B.CreacionFecha