2

これは基本的な SQL 日時の質問ですが、データベースを台無しにしたくありません。

たとえば、MySQL データベースで、テーブルの 1 つの 1 つの列で日付 X と日付 Y の間のすべての日時値を置き換えたい場合、それを行う SQL コマンドは何ですか? 例: 今月の 1 月のすべての日時値を 3 月の将来の日時に置き換えたいとします。

他の StackOverflow の質問のおかげで、日時の範囲を選択する方法を知っています - 例:

select * from table where DatetimeField between '22/02/2009 09:00:00.000' and '23/05/2009 10:30:00.000'

しかし、これに replace() 関数を追加する方法は?

ご協力いただきありがとうございます。念のため、データベースのバックアップを作成しました。

4

3 に答える 3

6

関数は必要ありません。単純な UPDATE ステートメントでうまくいきます。あなたの質問を正しく理解した場合、コメント付きのサンプル SQL コードを次に示します。

UPDATE Table -- Put in your table name
  SET DateTimeField='31/03/2011 10:30:00.000' -- Change to replacement date/time
  WHERE DatetimeField BETWEEN -- This is the time range to replace, 
    '22/02/2009 09:00:00.000' AND '23/05/2009 10:30:00.000' -- inclusive
于 2011-02-13T20:06:21.677 に答える
1

クエリを使用updateして、テーブル内の値を更新します。これにより、選択した日付のレコードが除外され、フィールドに新しい日付が入力されます。

update table
set DatetimeField = '01/03/2009 09:00:00.000'
where DatetimeField between '22/02/2009 09:00:00.000' and '23/05/2009 10:30:00.000'
于 2011-02-13T20:08:09.957 に答える
1
UPDATE table
SET DateTimeField = '2011-03-17'
WHERE DateTimeField >= '2011-01-01'
    and DateTimeField < '2011-02-01'

Between は包括的であるため、正確な終了日を除外する場合は、>= および < 構文を使用する必要があります。

于 2011-02-13T20:09:50.880 に答える