sql >> Databáze >  >> RDS >> Sqlserver

Převod číselné hodnoty na datum a čas

Vaše datum je ve skutečnosti číselná hodnota (plovoucí nebo celé číslo), uložená ve sloupci char. Musíte ji tedy převést na číselnou hodnotu (v tomto případě na float ) nejprve jako:

select convert(datetime, CONVERT(float,date_column))

Hodnota 41547.5 výsledkem bude:

`2013-10-02 12:00:00`

Argument stylu, ve vašem případě 6 je nutné pouze při převodu z nebo na typy znaků. V tomto případě to není potřeba a bude ignorováno.

Poznámka:Hodnota float je počet dní od 1900-01-01 .

např. select convert(datetime, CONVERT(float,9.0)) => 1900-01-10 00:00:00; stejné jako select dateadd(day,9.0,'1900-01-01') by.

Desetinná část čísla se také rovná dnům; takže 0.5 je půl dne / 12 hodin.

např. select convert(datetime, CONVERT(float,.5)) => 1900-01-01 12:00:00 . (Tady naše srovnání s dateadd nedává smysl, protože se zabývá pouze celými čísly, nikoli plovoucími).



  1. Spojení tabulek z jiné databáze

  2. Jak nainstalovat Oracle Instant Client na Mac?

  3. Mysql - najít tabulku v celé databázi

  4. Jak přepsat přiřazení automaticky se zvyšujícího primárního klíče při vkládání hodnoty do tabulky MySQL?