0

varchar(10) 形式で保存された日付がいくつかあります。

日付は次のようになります。

2008-01-06
2008-01-13
2008-01-20
2008-01-27
2008-02-03
2008-02-10
2008-02-17
2008-02-24

dd/mm/yyyy 形式 (DATE データ型も) でお願いします

私は次のことを試しました:

SELECT CONVERT(VARCHAR(max), startWeek, 103) date
FROM dbo.GoogledataFinal

なぜこれが出力されるのですか:

2008-01-06
2008-01-13
2008-01-20
2008-01-27
2008-02-03
2008-02-10
2008-02-17

コードを修正していただけると助かりますが、なぜこの動作が発生するのかということに興味があるので、5 歳のように説明していただけると助かります。

4

4 に答える 4

5

から に変換しvarcharていvarcharます。style パラメーターはそのためにも使用されません。

代わりに、 に変換してからdateに戻しvarcharます。

select convert(varchar(10), cast('2008-01-06' as datetime), 103)

これは以下を出力します:

06/01/2008
于 2012-10-31T11:31:44.487 に答える
2
SELECT CONVERT(varchar(10), CONVERT(datetime, startWeek), 103) date
FROM dbo.GoogledataFinal
于 2012-10-31T11:31:19.857 に答える
0

これを試して:

SELECT (SUBSTRING (startWeek,9, 2) + '/' + SUBSTRING (startWeek,6, 2) + '/' SUBSTRING (startWeek,1, 4))  AS date
FROM dbo.GoogledataFinal
于 2012-10-31T11:36:04.173 に答える
0

varchar を datetime に変換してから、目的の形式を使用して varchar に戻す必要があります。

SELECT CONVERT( varchar(10), 
         CONVERT(DATETIME, '2008-02-03', 120) -- Varchar "yyyy-mm-dd" to Datetime
       , 103) -- Datetime to Varchar "dd/mm/yyyy"

あなたの場合、SQLは次のようになります。

SELECT CONVERT( varchar(10), 
         CONVERT(DATETIME, startWeek, 120)
       , 103)
FROM dbo.GoogledataFinal
于 2012-10-31T11:38:37.537 に答える