manejo - obtener solo hora y minutos sql server




Cómo devolver solo la fecha de un tipo de datos DateTime de SQL Server (20)

Si está utilizando SQL Server 2012 o versiones anteriores ,

Utilice la función Format() .

Ya hay múltiples respuestas y tipos de formato para el servidor SQL. Pero la mayoría de los métodos son un tanto ambiguos y sería difícil para usted recordar los números para el tipo de formato o las funciones con respecto al Formato de fecha específico. Es por eso que en las próximas versiones del servidor SQL hay mejor opción.

FORMAT ( value, format [, culture ] )

La opción de cultura es muy útil, ya que puede especificar la fecha según sus espectadores.

Tienes que recordar d (para patrones pequeños) y D (para patrones largos).

1. "d" - Patrón de fecha corta.

2009-06-15T13:45:30 -> 6/15/2009 (en-US)
2009-06-15T13:45:30 -> 15/06/2009 (fr-FR)
2009-06-15T13:45:30 -> 2009/06/15 (ja-JP)

2. "D" - Patrón de fecha larga.

2009-06-15T13:45:30 -> Monday, June 15, 2009 (en-US)
2009-06-15T13:45:30 -> 15 июня 2009 г. (ru-RU)
2009-06-15T13:45:30 -> Montag, 15. Juni 2009 (de-DE)

Más ejemplos en consulta.

DECLARE @d DATETIME = '10/01/2011';
SELECT FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result'
      ,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result'
      ,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result'
      ,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result'; 

SELECT FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result'
      ,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result'
      ,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result'
      ,FORMAT ( @d, 'D', 'zh-cn' ) AS 'Chinese (Simplified PRC) Result';

US English Result Great Britain English Result  German Result Simplified Chinese (PRC) Result
----------------  ----------------------------- ------------- -------------------------------------
10/1/2011         01/10/2011                    01.10.2011    2011/10/1

US English Result            Great Britain English Result  German Result                    Chinese (Simplified PRC) Result
---------------------------- ----------------------------- -----------------------------  ---------------------------------------
Saturday, October 01, 2011   01 October 2011               Samstag, 1. Oktober 2011        2011年10月1日

Si quieres más formatos, puedes ir a:

  1. Cadenas de formato de fecha y hora estándar
  2. Cadenas de formato de fecha y hora personalizadas
SELECT GETDATE()

Devoluciones: 2008-09-22 15:24:13.790

Quiero esa parte de la fecha sin la parte del tiempo: 2008-09-22 00:00:00.000

¿Cómo puedo conseguir eso?


¿por qué no usa DATE_FORMAT (su_datetiem_column, '% d-% m-% Y')?

EX: select DATE_FORMAT( some_datetime_column, '%d-%m-%Y' ) from table_name

puede cambiar la secuencia de m, d y año reorganizando la parte '%d-%m-%Y'


Bueno, aunque llego un poco tarde :), aquí está la otra solución.

SELECT CAST(FLOOR(CAST(GETDATE() AS FLOAT)) as DATETIME)

Resultado

2008-09-22 00:00:00.000

Y si está utilizando SQL Server 2012 y superior, puede usar la función FORMAT() esta manera:

SELECT FORMAT(GETDATE(), 'yyyy-MM-dd')

Creo que esto funcionaría en tu caso:

CONVERT(VARCHAR(10),Person.DateOfBirth,111) AS BirthDate
//here date is obtained as 1990/09/25

En SQL Server 2008 y superior, debe CONVERT hasta la fecha:

SELECT CONVERT(date, getdate())

En versiones anteriores, puedes hacer lo siguiente:

SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @your_date))

por ejemplo

SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))

me da

2008-09-22 00:00:00.000

Pros:

  • No se requieren conversiones varchar <-> datetime
  • No hay necesidad de pensar en locale

En SQL Server 2000

CAST(
(
    STR( YEAR( GETDATE() ) ) + '/' +
    STR( MONTH( GETDATE() ) ) + '/' +
    STR( DAY( GETDATE() ) )
)
AS DATETIME)

Estoy a favor de lo siguiente que no fue mencionado:

DATEFROMPARTS(DATEPART(yyyy, @mydatetime), DATEPART(mm, @mydatetime), DATEPART(dd, @mydatetime))

Tampoco le importa lo local o hacer un doble conversión, aunque cada 'datepart' probablemente haga matemáticas. Por lo tanto, puede ser un poco más lento que el método fechado, pero para mí es mucho más claro. Especialmente cuando quiero agrupar solo por año y mes (establecer el día en 1).


Fecha:

SELECT CONVERT(date, GETDATE())
SELECT CAST(GETDATE() as date)

Hora:

SELECT CONVERT(time , GETDATE() , 114)
SELECT CAST(GETDATE() as time)

Para obtener el resultado indicado, uso el siguiente comando.

SELECT CONVERT(DATETIME,CONVERT(DATE,GETDATE()))

Yo holpe es útil.


Prueba esto:

SELECT CONVERT(VARCHAR(10),GETDATE(),111)

La declaración anterior convierte su formato actual a YYYY/MM/DD , consulte este enlace para elegir su formato preferible.


Puede usar lo siguiente para la parte de la fecha y el formato de la fecha:

DATENAME => Devuelve una cadena de caracteres que representa la parte de la fecha especificada de la fecha especificada

DATEADD => La función DATEPART() se usa para devolver una sola parte de una fecha / hora, como año, mes, día, hora, minuto, etc.

DATEPART => Devuelve un entero que representa la parte de la fecha especificada de la fecha especificada.

CONVERT() => La función CONVERT() es una función general que convierte una expresión de un tipo de datos a otro. La función CONVERT() se puede usar para mostrar datos de fecha / hora en diferentes formatos.


SQLServer 2008 ahora tiene un tipo de datos de "fecha" que contiene solo una fecha sin componente de tiempo. Cualquier persona que use SQLServer 2008 y más allá puede hacer lo siguiente:

SELECT CONVERT(date, GETDATE())

Si está asignando los resultados a una columna o variable, asígnele el tipo DATE y la conversión es implícita.

DECLARE @Date DATE = GETDATE()   

SELECT @Date   --> 2017-05-03

Si necesita un resultado en el tipo de datos varchar debe pasar por

SELECT CONVERT(DATE, GETDATE()) --2014-03-26
SELECT CONVERT(VARCHAR(10), GETDATE(), 111) --2014/03/26

que ya se ha mencionado anteriormente

Si necesita resultados en formato de fecha y hora, debe pasar por cualquiera de las siguientes consultas

1) SELECT CONVERT(DATETIME,CONVERT(VARCHAR(10), GETDATE(), 111)) como OnlyDate --2014-03-26 00: 00: 00.000

2) SELECT CONVERT(DATETIME,CONVERT(VARCHAR(10), GETDATE(), 112)) como OnlyDate --2014-03-26 00: 00: 00.000

3)

 DECLARE  @OnlyDate DATETIME
   SET @OnlyDate = DATEDIFF(DD, 0, GETDATE())
   SELECT @OnlyDate AS OnlyDate

--2014-03-26 00: 00: 00.000


Simplemente puedes hacerlo de esta manera:

SELECT CONVERT(date, getdate())
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @your_date))
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))

Salidas como:

2008-09-22 00:00:00.000

O simplemente haz esto:

SELECT CONVERT (DATE, GETDATE()) 'Date Part Only'

Resultado:

Date Part Only
--------------
2013-07-14

Usando FLOOR () - simplemente cortar parte del tiempo.

SELECT CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME)

Para devolución en formato de fecha.

CAST (Fecha de la fecha del pedido)

El código anterior funcionará en el servidor SQL 2010

Volverá como 12/12/2013

Para SQL Server 2012 use el siguiente código

CONVERT(VARCHAR(10), OrderDate , 111)

 Convert(nvarchar(10), getdate(), 101) --->  5/12/14

 Convert(nvarchar(12), getdate(), 101) --->  5/12/2014

SELECT CONVERT(VARCHAR,DATEADD(DAY,-1,GETDATE()),103) --21/09/2011

SELECT CONVERT(VARCHAR,DATEADD(DAY,-1,GETDATE()),101) --09/21/2011

SELECT CONVERT(VARCHAR,DATEADD(DAY,-1,GETDATE()),111) --2011/09/21

SELECT CONVERT(VARCHAR,DATEADD(DAY,-1,GETDATE()),107) --Sep 21, 2011

SELECT CONVERT(datetime, CONVERT(varchar, GETDATE(), 101))




datetime