2012-04-25 16 views
2

Iこのような多くの列があります。mysqlの更新日時列 - 追加10年3月22日と10時間、既存のデータに30分

select when from t1 where when LIKE '2002-01-02 %'\G 
*************************** 1. row *************************** 
when: 2002-01-02 02:13:14 
*************************** 2. row *************************** 
when: 2002-01-02 02:15:31 
*************************** 3. row *************************** 
when: 2002-01-02 02:19:42 

は、私が10年の日付と時刻をインクリメントしようとしています、3ヶ月、22日、13時間、10分、それは次のようになりますように:

2012-04-24 15:23:14 
2012-04-24 15:25:31 
2012-04-24 15:29:42 

検索のみ年、または月のいずれかを向上させる方法(ADDDATE)が見つかりました...しかし、どのように年、月、日、年のすべてのことができますか?

1つのクエリで実行できるのであれば素晴らしいと思いますが、何か問題はありません。お時間をいただきありがとうございます。

+0

を、あなたは実際には 'という名前の列を持っていますか"いつ?" –

+0

@ypercube、mysqlキーワードは予約されていません。それ以外の場合は ''は行います。 –

+0

@Mike: 'WHEN'は、MySQL 5.0のバージョンからでも予約されています。MySQLのdocs:[Reserved words in 5.0](https://dev.mysql.com/doc/refman/5.1/en/reserved-words。 html) –

答えて

4

あなたはこのようなものを使用することができます - あなたのサーバーは、あなたがUNIX_TIMESTAMPとFROM_UNIXTIMEと組み合わせTO_SECONDSを使用することができ、バージョン5.5以降であれば

SELECT datetime + INTERVAL 10 YEAR + INTERVAL 3 MONTH + INTERVAL 22 DAY 
     + INTERVAL 10 HOUR + INTERVAL 30 MINUTE AS new_date_time FROM table 
+0

作品...ありがとうございます。 – user379997

0

を:

SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(when) + TO_SECONDS('0010-03-22 13:10:00')) new_when 
FROM t1 
WHERE when LIKE '2002-01-02 %' 
関連する問題