SQL Datetime: tot el que heu de saber

Aquest article sobre sql datetime us ajudarà a entendre com escriure datetime i també com convertir d’altres tipus de data i hora a datetime

De vegades es tracta de data i hora a SQL pot ser bastant complicat. Tot i que la data i l’hora són tipus de dades completament diferents, sovint es combinen en un tipus de dades de data i hora. Dates i hores SQL sols són bastant senzills, però fusionar els dos pot ser una de les tasques més doloroses. En aquest article, es descriurà detalladament el tipus de data i hora de SQL.

Quin és el tipus de dades datetime?

A SQL, datetime El tipus de dades de data s'utilitza per a valors que contenen data i hora. Microsoft el defineix com a data combinada amb una hora del dia amb segons fraccionats que es basa en un rellotge de 24 hores .





SQL, específicament, té molts tipus de dades que combinen les representacions de data i hora, cosa que fa les coses més complexes. El més utilitzat és el DATETIME, ja que ha estat present des de les versions anteriors de SQL. SQL recupera i mostra els valors de DATETIME en format 'AAAA-MM-DD hh: mm: ss'. L'interval admès és de '1753-01-01 00:00:00' a '9999-12-31 23: 59: 59.997'. Explorem amb més detall el tipus de data i hora.

datetime Descripció

Consulteu la taula següent per obtenir més informació sobre el tipus de data i hora SQL.



Propietat Valor

Sintaxi

datetime

Ús



DECLARA @MyDatetimedatetime

CREA TAULA Taula1 (columna1datetime)

Format

'AAAA-MM-DD hh: mm: ss.nnn

Interval de temps

De 00:00:00 a 23: 59: 59,997

Rangs d'elements

  • AAAA són quatre dígits del 1753 al 9999 que representen un any.
  • MM és de dos dígits, que oscil·len entre l’1 i el 12, que representa un mes de l’any especificat.
  • DD té dos dígits, que oscil·len entre l'1 i el 31 segons el mes, que representa un dia del mes especificat.
  • hh són dos dígits, que oscil·len entre 00 i 23, que representen l’hora.
  • mm és de dos dígits, que oscil·len entre 00 i 59, que representa el minut.
  • ss és de dos dígits, que oscil·len entre 00 i 59, que representa el segon.
  • n * és de zero a tres dígits, que oscil·len entre 0 i 999, que representen els segons fraccionats.

Mida d'emmagatzematge

un constructor pot ser privat

8 bytes

Valor per defecte

1900.01.01 00:00:00

Calendari

Gregorià (inclou el període complet d'anys).

Nota: Els detalls anteriors s'apliquen al tipus de data i hora a Transact-SQL iSQL Server.

Per tant, això és així datetime a SQL. Però, què faríeu si teniu una altra data itipus d’hora i els heu de convertir a datetime tipus?

Conversió d'altres tipus de data i hora al tipus de dades datetime

El datetime tipus de dades SQL inclou la data i l'hora, amb una part de 3 dígits fraccionats segons. La seva precisió s'arrodoneix a increments de .000, .003 o .007 segons. Per tant, quan convertiu un fitxer data o bé temps valors a datetime , s’afegeix informació addicional al valor. Això es deu al fet que datetime el tipus de dades conté tant la data com l’hora. En aquesta part de l'article s'explica què passa quan es produeix una altra data i hora els tipus de dades es converteixen a datetime tipus de dades.

Exemple 1: conversió implícita entre data i hora

DECLARA @date date = '01/12/2020' DECLARA @datetime datetime = @date

Resultat

@datetime @date ------------------------- ---------- 2016-12-21 00: 00: 00.000 2016 -12-21

Exemple 2: conversió implícita entre data i hora i hora mitjançant CAST ()

DECLAREIX @thedate date = '2020-12-01' SELECCIONA @thedate AS 'data', CAST (@thedate AS datetime) AS 'datetime'

Resultat

@datetime @date ------------------------- ---------- 2016-12-21 00: 00: 00.000 2016 -12-21

Exemple 3: conversió implícita de smalldatetime a datetime

Quan la conversió és del s temps de malldat tipus, es copien les hores i els minuts. Els segons i els segons fraccionats s’estableixen en el valor 0. El següent codi mostra els resultats de convertir a smalldatetime valor a datetime valor.

DECLARA @smalldatetime smalldatetime = '01/12/2020 12:32' DECLARA @datetime datetime = @smalldatetime SELECT @datetime AS '@datetime', @smalldatetime AS '@smalldatetime'

Resultat

@datetime @smalldatetime ------------------------- --------------------- - 01/12/2016 12: 32: 00.000 01-12-2016 12:32:00

De la mateixa manera, podeu convertir-ne d'altres data i hora tipus a hora de dades escriviu implícitament o usant repartiment () i convertir () mètodes. Per obtenir més informació, consulteu la taula següent per familiaritzar-vos amb els formats de tots els tipus de data i hora.

Tipus de dades Exemple

temps

00:35:29. 1234567

data

2007-05-08

smalldatetime

2007-05-08 00:35:00

datetime

2007-05-08 12: 35: 29.123

datetime2

2007-05-08 00:35:29. 1234567

datetimeoffset

2007-05-08 12: 35: 29.1234567 +12: 15

Amb això, hem arribat al final d’aquest article. Espero que tingueu clar el contingut comentat aquí. Assegureu-vos de practicar el màxim possible i de recuperar la vostra experiència.

Si voleu obtenir més informació sobre MySQL i conegueu aquesta base de dades relacional de codi obert i, a continuació, consulteu la nostra que inclou formació en viu dirigida per un instructor i experiència en projectes reals. Aquesta formació us ajudarà a comprendre en profunditat MySQL i us ajudarà a dominar el tema.

Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris d’aquest article sobre “Procediments a SQL” i us respondrem.