• ベストアンサー

秒数をDATETIME型に変換して足したい

MySQLバージョン4.1.16を使っています。 time1というDATETIME型に秒数(1日以上ある)を加えたいのですが どのようなSQL文になるのでしょうか? UPDATE sample SET time1 = time1 + 秒数 このような感じになると思うのですが、 秒数のところをどう変換したらよいのかわかりません。

  • MySQL
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

「INTERVAL n SECOND」を使えばいいと思います。 update sample set time1 = time1 + interval 秒数 second

takagoo100
質問者

お礼

ご返答ありがとうございます。 そのやり方でできました。ありがとうございます。

関連するQ&A

  • Datetime型 条件について

    お世話になります。 以下のSQL文を実行したところ、更新されなくて困っております。 UPDATE RCV SET STATUS = '0' WHERE REC = convert(datetime,'2009/11/17 22:54:51') UPDATE RCV SET STATUS = '0' WHERE REC = '2009/11/17 22:54:51' 日付をコメントにすると、問題なく更新されます。 すいませんが、ご教授いただきたく宜しくお願い致します。

  • MySQLのDatetime型の引き算

    ある機械の1日当たりの処理数を計算したいと思います。 Datetimeの引き算がうまくいかないので、解決方法を教えてください。 1日当たりの処理数は下記の式で計算できます。 1日当たりの処理数=期間内処理数÷((現在日時-作業開始日時)÷(60×60×24)) ※現在日時-作業開始日時で期間の秒数を計算 それを1日の秒数=86400秒(60秒×60分×24時間)で割る。 ------------------ 環境 MySQL:5.0.77 ------------------ テーブル: test カラム :num(INT型),start_date(DATETIME型) ※numは期間内の機械の処理数です。 まず、上記の1日当たりの処理数の数式をSQL文に反映させてみました。 SELECT num , num/((now()-start_date)/86400) as shorisu FROM test 結果は表示されるのですが、かなり大きな数値になって出てきてしまいます。 WEBで情報を検索したところ、DATETIME型を直接減算すると求める結果にならないことはわかりました。 MySQLのページ(11.5. 日付時刻関数) http://dev.mysql.com/doc/refman/5.1/ja/date-and-time-functions.html を見てみましたが、どの関数を使えばよいのかいまいちわかりません。 now()-start_dateの部分が正しい値を返すようになれば良いのですが、どのような式を書けばよいのでしょうか?

    • ベストアンサー
    • PHP
  • MySQLのDateTimeにPHPで値セットは?

    初歩的な質問ですみません。 MySQLにとあるテーブルがあって、 その中に 更新日時 という DATETIME 型のフィールドがあるのですが、 insert でレコードを追加する際にそこに現在日時をセットしようとして、 恥ずかしながらその方法がわかりません。 $sql = sprintf('INSERT INTO %s SET %s="%s", %s="%s"',         'tmp',         'mailAddr', e($mailAddr),         'update', date('Y/m/d H:i:s')); mysql_query($sql); とか、 $sql = sprintf('INSERT INTO %s SET %s="%s", %s=cast(now() as datetime)',         'tmp',         'mailAddr', e($mailAddr),         'update'); mysql_query($sql); とか、いろいろ調べて試してみたんですけど...。 上記のように、insert into xxx set~ を使う場合を知りたいです。 すみません。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • datetime型のUpdate文

    sql server2000 Datetime型のフィールドを更新したのですが、うまくいきません。 2005年1月14日をいれるにはどうすればよろしいでしょうか? Update r_event Set ew_date = 2005-01-14

  • サーバから取得したdatetime型の変換

    いつもお世話になります。 初めて質問させていただきます。 初心者のため、不足の部分あるかと思いますが どうぞよろしくお願いいたします。 SQLServer2000サーバからSQLによるデータ取得を行いファイルに出力し、 そのファイルの内容を違うサーバに送るという課題があります。 そのうちサーバからデータを取得してファイルに出力するまでが 現在の私の担当部分になります。 その取得するデータの中にdatetime型の項目が存在しています。 これをファイル出力するためにchar型に変換を行いたいのですが、 良い方法が思いつきません。 time_t型からtm型に変換してそこからchar型に変換することを考えたのですが、 取得してきた項目自体をtime_t型に変換する根本の方法が わかりません。 取得してきた項目はlong型の値になっているようですので long型からtime_t型への変換ができれば localtime関数を使用してtm型に変換できるのですが。 上記のような方法が無いのでしょうか。 また皆様の中で過去にdatetime型の項目取得を行った経験をお持ちの型が いらっしゃいましたら参考にお話いただけませんでしょうか。 上記で何か不足部分ございましたらご指摘ください。 よろしくお願いいたします。

  • datetime型で日付計算ができません。

    開始日時(start_date)の20日を経過したレコードを削除したいのですがSQLで行う方法がわかりません。 start_dateはMySQLのdatetime型です。 select * from test where start_date + 20days < now() な感じ消せると思ったのですが調べても方法が 見つかりませんでした。

    • ベストアンサー
    • MySQL
  • 条件付きの複数の列の更新を1度にすることは可能?

    MySQLバージョン4.1.16を使っています。 aという列はaが0より大きいときだけ-1したくて でもbはいかなる条件のときでも0にしたい、という場合に それを1つのSQL文で実行することは可能なのでしょうか? 例えば、 query("UPDATE table SET a = a - '1' WHERE a > '0';"); query("UPDATE table SET b = '0';"); を1つのSQL文で実行したいのです。

    • ベストアンサー
    • MySQL
  • Datetime型とDate型

    SQLServer2008 ですが、日付のフィールドにこれまで使っていたDatetime型をDate型にしてみました。 連結Formでの画面表示が「2009/07/27」→「2009-07-27」に変わりました。 テーブルの表示時も同様に「-」になりました。   Dim wk_date date   if SQL_date = wk_date then   ・・・ 上記のAccessVABのIF文で・・・ 実際には同じ日付なのにマッチしなくなってしまいました。 Format関数で「yyyy-mm-dd」へ変換すればマッチします。 上記のwk_dateをSQLのフィールドに代入し書き込むとエラーにならず 「yyyy-mm-dd」の形へ変換されています。 質問 (1) 「-」でなく今まで通りの「/」にする事は出来ないでしょうか? (2) 比較時は変換するしかないのでしょうか?   (代入時は自動的に変換できているのに比較時も自動でやってくれても良さそうなんですが・・・)

  • MySQLのUPDATE文でサブクエリ

    MySQLのUPDATE文でサブクエリの使い方について教えて下さい。 MySQLのUPDATE文でサブクエリを使うと「#1093 - You can't specify target table 'exam' for update in FROM clause 」というエラーになってしまいます。 「あるテーブルに対してデータを追加・更新する場合、同じテーブルをサブクエリーに使えない」 「サブクエリー内のFrom句はテンポラリテーブルとして扱うことが可能」 ということはわかりましたが、これに従いSQL文を変更してもうまくいきません。 どのようにSQL文を作ったら良いか教えていただければと思います。 環境 PHP:5.1.6 MySQL:5.0.77 ------具体的なSQL文--------------------------------------- テーブル名:sample カラム名:date(DATETIME型),name,flag 上記テーブルに対して、 1.社員(列名:nameのsuzuki)の最新出勤日(列名:date)のflagを1にする 2.社員(列名:nameのsuzuki)の最新出勤日以外(列名:date)のflagを2にする という処理をしたいと思います。 まず、SELECT文を作ってみました。 1.最新出勤日データを抽出 SELECT * FROM sample WHERE (date= (select max(date) from sample)) and name='sizili' 2.最新出勤日以外のデータを抽出 SELECT * FROM sample WHERE not (date= (SELECT max(date) FROM sample)) and name='suzuki' これをUPDATE文に変更すると、 #1093 - You can't specify target table 'exam' for update in FROM clause というエラーになります。 上記をUPDATE文に変更 1.最新出勤日データを抽出 UPDATE sample SET flag=1 WHERE (date= (select max(date) from sample)) and name='sizili' 2.最新出勤日以外のデータを抽出 UPDATE sample SET flag=2 WHERE not (date= (SELECT max(date) FROM sample)) and name='suzuki' エラー文を検索したところ下記のような情報を見つけることができました。 「仕事SPOT」 MySQLでサブクエリ(エラー#1093を回避する方法) http://wsjp.blogspot.com/2009/12/mysql1093.html 「あるテーブルに対してデータを追加・更新する場合、同じテーブルをサブクエリーに使えない」 「サブクエリー内のFrom句はテンポラリテーブルとして扱うことが可能」 と記載されています。 このページに掲載してあるように変更を加えてみました。 1.最新出勤日データを抽出 UPDATE sample SET flag=1 WHERE (date= (select max(date) as test_max from sample)) as text_tb and name='sizili' 2.最新出勤日以外のデータを抽出 UPDATE sample SET flag=2 WHERE not (date= (SELECT max(date) as test_max FROM sample)) as test_tb and name='suzuki' これでもエラーになってしまい、うまくいきません。

    • ベストアンサー
    • PHP
  • DateTime型  エラー⇒"date"がサポートされていない

    ASP.NETの勉強をVisualStudio2005を使って勉強しているのですが・・・ データベースの更新・削除のところで日付型を含むテーブルの更新等ができずエラーが出ます。 使用されているSQL Serverのバージョンでは、データ型 'date' がサポートされていません。 と言うエラーを出します。 参考書として使ってる本についていたサンプルのソースでは <asp:Parameter Name="StartDate" Type="DateTime" /> となっているのですが、参考書通りにGridViewなどを配置してSqlDataSourceを参照させても <asp:Parameter DbType="Date" Name="StartDate" /> となります。 一応【DbType="Date"】の箇所を【DbType="DateTime"】に変更してやれば使えるようにはなるのですが、いちいち変更するのはめんどうです。 それと、何故【Type=】ではなく【DbType=】になっているのでしょうか? 開発環境(バージョンとか?)の違いなどでTypeの指定などが勝手に変わってしまっているのでしょうか?