0

yyyy-mm-dd次のコマンドを使用してフォーマットで保存されているテーブルの既存のSQL日付をに変換しようとしていますdd-mm-yyyy。そうしている間、データ型に正常に変換できnvarcharますが、日付として変換すると、同じ古い形式の。を受け取りますyyyy-mm-dd

これがクエリです

Select 
    Convert(date, CONVERT(VARCHAR(10), a.LogDateTime, 103), 103) AS LDate  
from sec.[Log] AS a

nvarcharまた、次のスクリプトを使用して現在の日付に変換しようとしましたが、結果は同じままです。

SELECT convert(date, '23/10/2016', 103)

誰かが問題が正確に何であるかを知ることができますか?データ型を変更せずに、日付を私たちの形式から英国の形式に変換したいので。

4

2 に答える 2

2

日付はテキスト形式で保存されません。DATETIME値は内部形式で保存され、8バイトのディスクストレージを使用します。テキスト形式では保存されません。

参考までに、yyyy-mm-ddは米国の形式ではありません。これは、SQLServerチームがSQLServer Management Studio内で日付値を表示するために使用することを決定した、広く受け入れられている明確な表示形式です。

特定の形式で表示する必要がある場合は、VisualStudioで作成されたデスクトップアプリケーションなどの表示レイヤーで表示する必要があります。残念ながら、SSMSでデフォルトの形式を制御する設定はないため、SSMSで表示する場合は、正しい形式(103)で変換する必要があります。

declare @d datetime
set @d = '20120506'
select CONVERT(char(10), @d, 103) -- or column instead of variable
于 2012-10-04T01:08:01.070 に答える
1
SELECT  CONVERT (VARCHAR(15), logdatetime, 105)
FROM    sec.[log]
于 2012-10-04T05:26:29.533 に答える