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

Převeďte varchar na datetime v sql, který má milisekundy

Můžete použít styl 121, ale můžete mít pouze 3 číslice pro milisekundy (tj. yyyy-mm-dd hh:mi:ss.mmm(24h) ) formát.

declare @abc varchar(100)='2011-09-26 16:36:57.810' 
select convert(datetime,@abc,121)

Můžete to tedy vyřešit omezením pole varchar na 23 znaků před převodem jako:

declare @abc varchar(100)='2011-09-26 16:36:57.810000' 
select convert(datetime,convert(varchar(23),@abc),121)

Nebo použijte Left() funkce získat prvních 23 znaků jako:

select convert(datetime,left(@abc,23),121)

Snažte se vyhnout ukládání data jako řetězce.



  1. Dynamické dělení tabulek v postgresu

  2. Dotaz SQL pro načtení řádků, kde je hodnota přítomna v poli odděleném čárkou

  3. Zpracování Null ve funkci Greatest v Oracle

  4. Jak vyladit aplikaci Ruby on Rails běžící na Heroku, která využívá produkční úroveň Heroku Postgres?