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

Aritmetická chyba přetečení při převodu výrazu na datový typ datetime. (při zobrazení data a času..)

Váš problém je, že se pokoušíte convert číslo na datetime a tohle prostě nefunguje.

Musíte otočit numeric nejprve do řetězce:

declare @yr_mnth_dt as numeric;
set @yr_mnth_dt = 20130822;

select yr_mnth_dt = cast(cast(@yr_mnth_dt as char(8)) as datetime);

SQL Fiddle s ukázkou.

Když se pokusíte převést číselný typ na datetime , SQL Server se pokusí přidat číselnou hodnotu jako počet dní k datu 01-Jan-1900 . Ve vašem případě se to pokouší přidat miliony dní, a proto došlo k chybě přetečení.

CONVERT funguje také dobře, pokud chcete:

select yr_mnth_dt = convert(datetime, convert(char(8), @yr_mnth_dt));

SQL Fiddle s ukázkou.



  1. Získání nezpracovaného řetězce dotazu SQL z připravených příkazů PDO

  2. Jak opravit "Pro hromadnou sadu řádků v klauzuli from musí být zadán název korelace." v SQL Server

  3. ScaleGrid DBaaS rozšiřuje MySQL hostingové služby prostřednictvím AWS Cloud

  4. Jak vytvořit databázi online z režimu obnovení na serveru SQL Server