Konwertuj INT na DATETIME (SQL)
Próbuję przekonwertować datę na datetime, ale dostaję błędy. Typ danych, z którego konwertuję jest (float,null) i chciałbym go przekonwertować na DATETIME.
Pierwsza linijka tego kodu działa dobrze, ale dostaję ten błąd w drugiej linijce:
Arytmetyczny błąd przelewu konwertujący wyrażenie na typ danych datetime.
CAST(CAST( rnwl_efctv_dt AS INT) AS char(8)),
CAST(CAST( rnwl_efctv_dt AS INT) AS DATETIME),
36
2 answers
Musisz najpierw przekonwertować na char, ponieważ konwersja na int dodaje te dni do 1900-01-01
select CONVERT (datetime,convert(char(8),rnwl_efctv_dt ))
Oto kilka przykładów
select CONVERT (datetime,5)
1900-01-06 00:00:00.000
select CONVERT (datetime,20100101)
Wybucha, bo nie można dodać 20100101 dni do 1900-01-01..przekraczasz limit
Konwertuj na znak pierwszy
declare @i int
select @i = 20100101
select CONVERT (datetime,convert(char(8),@i))
49
Author: SQLMenace,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-04 13:59:34
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-04 13:59:34
Spróbuj tego:
select CONVERT(datetime, convert(varchar(10), 20120103))
0
Author: rchacko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-02 08:48:28
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-02 08:48:28