sábado, 16 de mayo de 2015

Funciones de fecha en SQL Server




Parte de la fechaAbreviaturas
yearyy , yyyy
quarterqq , q
monthmm , m
dayofyeardy , y
daydd , d
weekwk , ww
weekdaydw
hourhh
minutemi, n
secondss , s
millisecondms
microsecondmcs
nanosecondns
TZoffsettz
ISO_WEEKisowk , isoww

  • GetDate
Funcion que recupera la fecha actual del sistema.

select getdate()

  • Convert, Cast
Convierten explícitamente una expresión de un tipo de datos en otro. CAST y CONVERT proporcionan funciones similares.
Convert(Tipodedatosdestino, Origen, Estilo)
  • Tiposdedatosdestino: Siempre ha de ser tipo carácter
  • Origen: Puede ser tipo fecha, numérico o moneda.
  • Estilo: Opcional. Es un código que indica el formato en el que devuelve la cadena de caracteres.
Sintaxis:
Convert(TipoDato,Dato)
Cast (Dato as TipoDato)

Ejemplo:

DECLARE @N INT,@PALABRA NVARCHAR(10)
SET @N = 1
SET @PALABRA ='NÚMERO'
PRINT CONVERT(NVARCHAR(2),@N) + ' ' + @PALABRA
PRINT CAST(@N AS NVARCHAR(2)) + ' ' + @PALABRA
WHILE (@N<11)
BEGIN
PRINT CONVERT(NVARCHAR(2),@N) + ' ' + @PALABRA
PRINT CAST(@N AS NVARCHAR(2)) + ' ' + @PALABRA
SET @N = @N + 1
END



  • DateName
Devuelve una cadena de caracteres que representa la parte de la fecha especificada de la fecha especificada
Los calculos para las horas no son exactos cuando se trata de SmallDateTime, por lo que devuelve 0.

SELECT DATENAME(MONTH,FECHA_ALT) AS 'NOMBRE MES SIN ABREVIATURA'
FROM EMP
WHERE EMP_NO = 7876

SELECT DATENAME(M,FECHA_ALT) AS 'NOMBRE MES CON ABREVIATURA'
FROM EMP
WHERE EMP_NO = 7876

SELECT DATENAME(WEEK,FECHA_ALT) AS 'NUMERO SEMANA SIN ABREVIATURA'
FROM EMP
WHERE EMP_NO = 7876

SELECT DATENAME(WK,FECHA_ALT) AS 'NUMERO SEMANA CON ABREVIATURA'
FROM EMP
WHERE EMP_NO = 7876

SELECT DATENAME(WEEKDAY,FECHA_ALT) AS 'DIA SEMANA SIN ABREVIATURA'
FROM EMP
WHERE EMP_NO=7876

SELECT DATENAME(DW,FECHA_ALT) AS 'DIA SEMANA CON ABREVIATURA'
FROM EMP
WHERE EMP_NO=7876


Horas: 

SELECT DATENAME(MI,FECHA_ALT) AS 'MINUTOS CON ABREVIATURA'
FROM EMP
WHERE EMP_NO = 7876

SELECT DATENAME(MINUTE,GETDATE()) AS 'MINUTOS SIN ABREVIATURA'

SELECT DATENAME(MI,GETDATE()) AS 'MINUTOS CON ABREVIATURA'

SELECT DATENAME(HH,FECHA_ALT) AS 'HORA CON ABREVIATURA'
FROM EMP
WHERE EMP_NO = 7876

SELECT DATENAME(HOUR,GETDATE()) AS 'HORA SIN ABREVIATURA'

SELECT DATENAME(HH,GETDATE()) AS 'HORA CON ABREVIATURA'



  • DatePart
Devuelve la parte de la fecha u hora indicada.

Sintaxis: Datepart(Valoradevolver, fecha)

SELECT DATEPART(MM,FECHA_ALT) AS 'MES',APELLIDO FROM EMP

SELECT DATEPART(HH,GETDATE()) AS 'HORA'

SELECT DATEPART(MI,GETDATE()) AS 'MINUTOS'


Nombres de Fechas:
Day(fecha)
Devuelve un INT, equivale a datepart

SELECT DAY(GETDATE()) AS DIA

SELECT DATEPART(DD,GETDATE()) AS DIA

SELECT MONTH(GETDATE()) AS MES

SELECT DATEPART(MM,GETDATE()) AS MES

SELECT YEAR(GETDATE()) AS AÑO

SELECT YEAR(FECHA_ALT) AS AÑO
FROM EMP
WHERE EMP_NO = 7876


  • DateAdd
Añade un número a la fecha puesta

DateAdd( datepart , number, date )
DatePart es el formato de lo que queremos añadir.
Number es el número que queremos incrementar la fecha expuesta.

SELECT DATEADD(DD,7,'16/05/2015') AS 'FECHA CON 7 DIAS DE MAS'

SELECT DATEADD(MM,1,'16/05/2015') AS 'FECHA CON 1 MES DE MAS'

SELECT DATEADD(YY,3,'16/05/2015') AS 'FECHA CON 3 AÑOS DE MAS'


  • DateDiff
Devuelve la diferencia entre dos fechas en el intervalo que le indiquemos. 

Sintaxis:

DateDiff (DatoqueDevuelve, Fecha1, Fecha2)
Datoquedevuelve: Indicamos como queremos que haga la comparación y el tipo de dato que nos devolverá, años, días, minutos etc.

SELECT DATEDIFF(YYYY,FECHA_ALT,GETDATE())
AS 'DIFERENCIA DE AÑOS ENTRE LA FECHA DE ALTA Y LA FECHA ACTUAL'
FROM EMP
WHERE EMP_NO = 7876


Espero haber ayudado en algo. Hasta la próxima oportunidad!







7 comentarios:

  1. hola.....
    Tengo problemas para instalar el Sql en windows 8, por favor si me indican como podria hacer? y Gracias por su respuesta.

    ResponderEliminar
    Respuestas
    1. Amigo: por favor, tienes que ser más específico al hacer tu pregunta, Los participanes en estas páginas, tratamos de ayudarnos unos a otros, pero una norma mínima de "netiquete" es tratar de dar la mayor cantidad de información relevante. Piensa un poco.. Si vas al doctor, no va a ser de mucha ayuda si solo le dices, estoy mal... te hará muchas preguntas, pero tiene la vnetaja de estar cara a cara contigo. En Internet eso es mucho más difícil. Por ejemplo sería muy util que nos dijeras, que sistema operativo tienes, en que lenguaje esta, es versión de 32 ó 64 bits, cuanto de memoria RAM tiene tu compu, tiene suficiente espacio en Disco Duro. Que versión de SQL tratas de instalar, en que idioma está, es de 32 ó de 64 bits. Cual es el mensaje de error que te dá. Saludos.

      Eliminar
    2. Hola Anónimo, gracias por la visita y el aporte de tu comentario.
      Julio en su respuesta tiene razón, hay poca información de tu parte acerca del problema, pueden ser muchos, sin embargo con el deseo de ayudarte te dejo el link de un video en youtube para que observes como se descarga e instala sql server 2012 en windows 8.

      https://www.youtube.com/watch?v=PINdDpZvt1Q

      Éxitos! Hasta cualquier instante!

      Eliminar
  2. Respuestas
    1. Hola Julio Castillo, gracias por la visita y el aporte de tu comentario!
      Los mejores deseos!! Hasta cualquier momento!

      Eliminar
    2. Hola Anónimo, gracias por la visita y el aporte de tu comentario!
      Éxitos! Hasta cualquier instante!

      Eliminar