3

デモデータベースを作成しています。そのため、すべての日付を含む列を特定の日付に変更する必要があります。

月と日だけを置き換え、年はそのままにします。

例: 2012 年 3 月 12 日、1990 年 6 月 19 日

解決策: 2012 年 1 月 1 日、1990 年 1 月 1 日

彼らは月と日付を次のようにしたいと考えています: 01/01

私のクエリは以下のとおりです。

update Tablename set column = REPLACE(column, select substring(column,1,5) from Tablename ,'01/01') ;

しかし、私は以下のようにエラーが発生します:

Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'select'.
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '01/01'.

ヘルプ/アドバイスをいただければ幸いです。

4

4 に答える 4

0

間違ったものを削除するだけselectです:

update Tablename
set column = REPLACE(column, substring(column,1,5) from Tablename ,'01/01');

ただし、DATEPART関数を使用する方がより適切なアプローチのようです。

UPDATE Tablename
SET column = CAST('01/01/' + CAST(DATEPART(year, column) AS VARCHAR) AS DATETIME)
于 2013-07-03T18:15:09.317 に答える
0

まず、文字列操作を実行する場合は、DateTime を VARCHAR に変換する必要があります。次に、SUBSTRING を探す必要はありません。DateTime 形式を使用して DateTime 列を更新するだけです。

UPDATE TABLE SET ColumnName = CAST('Whatever Date You Want' AS DATETIME)
于 2013-07-03T18:20:27.937 に答える