基本的には、varchar(10)
という形式のいくつかの列に '##。##。####'(day.month.year)という大規模な表を継承しました。特定の日付のこれらの列をDatetime
列に変換したいと思います。SQLサーバー:テーブル内のdatetimeを変換する
プログラミング言語で各レコードを選択し、日付を変換してからDatetime
(おそらく別の列に更新する)の代わりにSQLサーバー上で(SQLクエリの単一のセットを通じて)これらを変換する方法はありますか)?
基本的には、varchar(10)
という形式のいくつかの列に '##。##。####'(day.month.year)という大規模な表を継承しました。特定の日付のこれらの列をDatetime
列に変換したいと思います。SQLサーバー:テーブル内のdatetimeを変換する
プログラミング言語で各レコードを選択し、日付を変換してからDatetime
(おそらく別の列に更新する)の代わりにSQLサーバー上で(SQLクエリの単一のセットを通じて)これらを変換する方法はありますか)?
必要はありません...=(select...)
この操作は簡単で簡単です。
ALTER TABLE YourTable
ADD NewDateColumn DATETIME
update YourTable set NewDateColumn = convert(date, OldDateColumn, 104)
--Magic 104 is for dd.MM.yyyy date format
これだけです。
ありがとう!魅力的な作品! –
ジムのコメントの代わりにこれはどうですか?からそれを取得したい場合があります誰かのために
UPDATE t
SET t.NewDateColumn = (SELECT CONVERT(DATE, OldDateColumn, 104)
FROM YourTable ta WHERE t.ID = ta.ID)
FROM YourTable t
:UPDATE
(私はあなたが使用してきた同じ標準を使用したいと仮定)に続いて
ALTER TABLE YourTable
ADD NewDateColumn DATETIME
:まず新しいDATE
列を追加米国の標準へのドイツ標準:これは、あなたがID
列を持っています
UPDATE t
SET t.NewDateColumn = (SELECT CONVERT(DATETIME,
CONVERT(DATE, OldDateColumn, 104)
,101)
FROM YourTable ta WHERE t.ID = ta.ID)
FROM YourTable t
想定しています。
これを行うには、update tableName set newfield = \t(oldfield、4,2)+ '/' + left(oldfield、2)+ '/' + right(oldfield、 4)datetime)) ' –
@ JimHewittあなたはコメントの代わりに答えを出すべきです。 –