Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Konwertuj varchar na datetime w sql, który ma milisec

Możesz użyć stylu 121, ale możesz mieć tylko 3 cyfry dla milisekund (np. yyyy-mm-dd hh:mi:ss.mmm(24h) ).

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

Możesz więc uporządkować to, ograniczając pole varchar do 23 znaków przed konwersją jako:

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

Lub użyj Left() funkcja, aby uzyskać pierwsze 23 znaki jako:

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

Staraj się unikać przechowywania daty jako ciągu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wykluczyć kolumnę za pomocą SELECT * [oprócz kolumny A] FROM tabela A?

  2. Utwórz widok powiązania schematu w SQL Server

  3. Konwersja nie powiodła się podczas konwersji daty i/lub czasu z ciągu znaków

  4. Sortowanie danych dla źródła PIVOT

  5. Dostrajanie usług raportowania SQL Server