0

形式が文字列でtable_aある列を持つテーブルがあります。field_b

その分野では、それらは例えば書かれています01/06/2012

に変更する必要があります2012-06-01

フィールドタイプなどは変更できません。

4

6 に答える 6

1
SELECT CONVERT(DATE,CONVERT(DATEtime,'01/06/2012',103))

その他の例については、ここをクリックしてください

于 2012-07-16T09:13:30.893 に答える
0
select cast(cast('01/06/2012' as DATE) as varchar(10))
于 2012-07-16T09:06:33.303 に答える
0

ほとんどのSQLエンジンにはsubstring()関数があります。これをconcat()と一緒に使用して、新しい文字列を作成します。

(擬似コード)

update table_a set field_b=concat(substring(field_b, 6, 4), '-', substring(field_b, 3, 2), '-', substring(field_b, 0, 2))

詳細については、SQLサーバーのマニュアルを参照してください。

于 2012-07-16T09:07:36.580 に答える
0
select convert(datetime,'01/06/2012',103)
于 2012-07-16T09:10:21.490 に答える
0
update [YourDB].[dbo].[YourTable]
set [YourColumn] =  convert(nvarchar(10), convert(datetime,[YourColumn]), 126)
于 2012-07-16T09:23:52.987 に答える
-1

これは機能し、ローカリゼーションの問題を回避する答えです。

select cast(cast(convert(DATETIME, '01/06/2012', 103) as DATE) as NVARCHAR(10))

103をフォーマットとして使用し、それを日付に変換して(時間を切り捨てるために)、次にvarcharに変換する必要があります。

于 2012-07-16T09:12:26.497 に答える