0

DATEDEPOTとして列を持つテーブルがありますvarchar(20)

内部の情報は次のようなものです: 20020101-つまりYYYYMMDD

これを日時に変換したいと思います。

このために、他の投稿への回答を確認しましたが、何も機能していません。

これが私が試したものです:

select datedepot, cast(datedepot as datetime) as test from DessinsV2

次のメッセージが表示されます。

Msg 241, Niveau 16, État 1, Ligne 1.
Échec de la conversion de la date et/ou de l'heure à partir d'une chaîne de caractères.

私はこれを試しました:

declare @Madate char(10)
SELECT @MaDate=datedepot from DessinsV2

select convert(datetime,left(@Madate,4)+substring(@Madate,5,2)+right(@Madate,2))as DATEDEPOTTEST from dessinsv2

そして私は得る:

Msg 241、Niveau 16、État 1、Ligne 1
Échec de la conversion de la date et/ou de l'heure à partir d'une chaîne de caractères.

4

4 に答える 4

0

これはあなたのマシンで実行されますか?

DECLARE @var as nvarchar(20)
SELECT @var = '20020101'
SELECT CONVERT(datetime, @var)

このクエリは機能しますが、「DDMMYYYY」形式の日付文字列を使用する場合は機能しません。

日時の詳細については、 http://msdn.microsoft.com/en-us/library/ms187819.aspxを参照してください。

于 2013-02-04T12:43:56.113 に答える
0

助けてくれてありがとう。

私のクエリは良かったのですが、「グループ化」するクエリを作成したところ、特殊文字や特殊数字などの不規則なコンテンツが見つかりました。それらの情報は変換できませんでした。

したがって、奇妙な情報を含む行を無視すると、クエリは正常に機能します。

于 2013-02-11T15:27:50.300 に答える
0
select '20020101' as orignal_date,
       cast('20020101' as datetime) as converted_date

この作品は私と一緒にうまくいきます。確認してください。

于 2013-02-04T13:09:08.057 に答える
0

次のように、変換関数に日付入力形式を指定する必要があります。

select datedepot, convert(datetime, datedepot,112) as test from DessinsV2

その他の形式については、http : //msdn.microsoft.com/es-es/library/ms187928.aspxを参照してください。

于 2013-02-04T13:10:21.427 に答える