una semestre obtener nombre mes hora fecha extraer año actual sql-server datetime function

semestre - Función SQL Server para devolver la fecha mínima(1 de enero de 1753)



obtener mes y año de una fecha sql (8)

Estoy buscando una función de SQL Server para devolver el valor mínimo para datetime, es decir, el 1 de enero de 1753. Prefiero no codificar ese valor de fecha en mi script.

¿Existe algo así? (Por comparación, en C #, podría hacer DateTime.MinValue) O tendría que escribir esto yo mismo?

Estoy usando Microsoft SQL Server 2008 Express.


¿Has visto el objeto SqlDateTime ? use SqlDateTime.MinValue para obtener su fecha mínima (1 de enero de 1753).


Aquí hay una forma rápida y altamente legible de obtener el valor mínimo de la fecha

Crear una función

CREATE FUNCTION MinDate() RETURNS DATETIME AS BEGIN RETURN CONVERT(DATETIME, -53690) END

Llamar a la función

dbo.MinDate()

Ejemplo 1

PRINT dbo.MinDate()

Ejemplo 2

PRINT ''The minimimum date allowed in an SQL database is '' + CONVERT(VARCHAR(MAX), dbo.MinDate())

Ejemplo 3

SELECT * FROM Table WHERE DateValue > dbo.MinDate()

Ejemplo 4

SELECT dbo.MinDate() AS MinDate

Ejemplo 5

DECLARE @MinDate AS DATETIME = dbo.MinDate() SELECT @MinDate AS MinDate


Como no puedo comentar sobre la respuesta aceptada debido a insufficeint puntos de reputación, mi comentario es una respuesta.

el uso del select cast(''1753-1-1'' as datetime) se realizará select cast(''1753-1-1'' as datetime) si se ejecuta en una base de datos con configuraciones regionales que no aceptan una cadena de fechas del formato AAAA-MM-DD.

En su lugar, use el select cast(-53690 as datetime) o un Convert con el formato de fecha y hora especificado.


El rango de datetime y datetime no cambiará, ya que eso rompería la compatibilidad con versiones anteriores. Entonces puedes codificarlo.


Esto es lo que uso para obtener la fecha mínima en SQL Server. Tenga en cuenta que es amigable con la globalización:

CREATE FUNCTION [dbo].[DateTimeMinValue]() RETURNS datetime AS BEGIN RETURN (SELECT CAST(''17530101'' AS datetime)) END

Llamar usando:

SELECT [dbo].[DateTimeMinValue]()


Ingrese la fecha como un valor nativo ''yyyymmdd'' para evitar problemas regionales:

select cast(''17530101'' as datetime)

Sí, sería genial si TSQL tuviera MinDate() = ''00010101'' , pero no tuvo tanta suerte.


No es el 1 de enero de 1753, pero selecciona el reparto ('''' como fecha y hora) que revela: 1900-01-01 00: 00: 00.000 da el valor predeterminado por el servidor SQL. (Parece más no inicializado de todos modos)


Podría escribir una Función definida por el usuario que devuelva el valor mínimo de la fecha así:

select cast(-53690 as datetime)

Luego use esa función en sus scripts, y si alguna vez necesita cambiarla, solo hay un lugar para hacerlo.

Alternativamente, puede usar esta consulta si lo prefiere para una mejor legibilidad:

select cast(''1753-1-1'' as datetime)

Función de ejemplo

create function dbo.DateTimeMinValue() returns datetime as begin return (select cast(-53690 as datetime)) end

Uso

select dbo.DateTimeMinValue() as DateTimeMinValue DateTimeMinValue ----------------------- 1753-01-01 00:00:00.000