MS SQL Server: dd-dd saklanması - yıl hh mm ss am / pm datetime zamanını öldürür

oy
1

Ben API üzerinden gibi biçimlendirme tarihsaat bir json alma: 4 Aralık 2018 11:10:00 AM (yani gibidir: aa-gg - yıllık ss mm ss am / pm) Ben tabloya bir tarih saat satır eklendi ve benim MS SQL Server 2016 yılında veri almak. SQL Server zaman parçası girişlerini öldürür 00.000 ama İthalat süreci üzerinde: 10: 11 2018/12/04 gibi datetime görüntülenen beklenmektedir. Yani sadece 2018/12/04 00: 00: 00.000 saklanır. Google'ı kontrol edilip StackOverflow'daki ama bunun için sebep buldum.

Herhangi bir ipucu?


Düzenle

Bir değişkende json Infos saklanır ve üzerinden veri alma @json/OPENJSONTSQL ile ve birleştirme mergetablosuna.

Oluştur 08/11/2018 saat 11:22
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
1

Kullanılan datetime biçimi tüm bir cummulation olduğunu asla-do-bu ... Bu dile özgü, kültür spesifik ve standart dışı olan bir paket içinde.

Ama - şanslı bir adam - SQL-Server varolan standart formata çok yakındır. Hakkında okuyun CAST()ve CONVERT()üçüncü parametre. .

Bunu dene:

SET LANGUAGE ENGLISH;
DECLARE @YourDateTimeString VARCHAR(100)='December 4 2018, 11:10:00 AM';

SELECT CONVERT(DATETIME,REPLACE(@YourDateTimeString,',',''),109);

"Aralık" bilen bir dil kullanmak emin olun. Benim kültürü (Almanca) bu "Dezember" olduğunu ve senaryo başarısız olur ...

Formata 109 içine almak için virgül yerine yeterli gibi görünüyor ...

, Girişini değiştirmek standart bir biçim kullanmak gönderen tarafı ikna etmek için herhangi bir şans varsa, en iyi ISO8601 oldu ( yyyyMMddTHH:mm:ss).

GÜNCELLEŞTİRME

Bu test ederken ben yanlış yerde virgül vardı. size verilen dize ile bu hatta herhangi değiştirmeler olmadan çalışır:

SET LANGUAGE ENGLISH;
DECLARE @YourDateTimeString VARCHAR(100)='December 4, 2018 11:10:00 AM';

SELECT CONVERT(DATETIME,@YourDateTimeString,109);
Cevap 08/11/2018 saat 14:29
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more