Saltar al contenido

Creando fecha en SQL Server 2008

Solución:

Podría usar algo como esto para hacer su propia fecha y hora:

DECLARE @year INT = 2012
DECLARE @month INT = 12
DECLARE @day INT = 25

SELECT CAST(CONVERT(VARCHAR, @year) + '-' + CONVERT(VARCHAR, @month) + '-' + CONVERT(VARCHAR, @day)
 AS DATETIME)

Utilizando el 3 de su ejemplo, podría hacer esto:

dateadd(dd, 3 -1, dateadd(mm, datediff(mm,0, current_timestamp), 0))

Funciona al encontrar la cantidad de meses desde la fecha de la época, agregar esos meses a la fecha de la época y luego agregar la cantidad deseada de días a ese resultado anterior. Suena complicado, pero se basa en lo que era la forma canónica de truncar fechas anteriores a la Date (no DateTime) tipo agregado a Sql Server 2008.

Probablemente verá otras respuestas aquí que sugieren la creación de cadenas de fecha. Te insto a evitar sugerencias para usar cadenas. Es probable que el uso de cadenas sea mucho más lento, y existen algunos errores potenciales con las colaciones / formatos de fecha alternativos.

CREATE FUNCTION  DATEFROMPARTS
(
    @year int,
    @month int,
    @day int
)
RETURNS datetime
AS
BEGIN

     declare @d datetime

     select @d =    CAST(CONVERT(VARCHAR, @year) + '-' + CONVERT(VARCHAR, @month) + '-' + CONVERT(VARCHAR, @day) AS DATETIME)
    RETURN  @d 

END
GO
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *