LoginSignup
3
7

More than 3 years have passed since last update.

[MySQL][java]日時を受け取る

Posted at

概要

MySQLに登録された日時をjavaで取得する方法、javaからMySQLへ日時を登録する方法を紹介する。
MySQLへ接続する方法はこちらを見て頂きたい。https://qiita.com/QiitaD/items/d605b07e849e3bec0722

MySQLに定義する列

日時をtimestamp方で定義する。列名は"date_time"、フォーマットは"yyyy-MM-dd HH:flag_mm:ss"である。

MySQLからjavaでの取得

    String mySql = "select * from table_name";//日時のあるデータを取得するSQL文
    ResultSet rs = stmt.executeQuery(mySql);  //SQL実行、データを取得
    while (rs.next()) {
        rs.getTimestamp("date_time");         //取得データから日時情報を取得
    }        

javaからMySQLへ日時を登録する

例として現在時刻を登録する。

    String mySql = "insert into table (date_time) values ('" + getNowDateTime(){ + "')";
    stmt.executeUpdate(mySql);
    /**
     * 現在日時をyyyy/MM/dd HH:mm:ss形式で取得する.<br>
     */
    public static String getNowDateTime(){
        final DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        final Date date = new Date(System.currentTimeMillis());
        return df.format(date);
    }

現在時刻取得方法はこちらを参照した。https://qiita.com/zuccyi/items/d9c185588a5628837137

困ったところ

困ったというほどではないが、初心者の方に向けて注意点が2つある。
①SQLの実行文
selectでデータを取得するときはexecuteQueryだが、updateやinsert、deleteの時はexecuteUpdateである。

②シングルクォーテーション
忘れやすいが、今回のサンプルでは日時を'(シングルクォーテーション)で囲まなければならない。

上記2つは私が超初心者時代によく躓いていたので気を付けて頂きたい。

感想

本記事では日時の扱い方として一例を紹介したが、日時には方が様々なので他にも使い方がある。(DateやLocaleDateTimeなど)
型を変えると変換が面倒になったりするので、よく考えて使いたい。

参考URL

日付と時刻型
https://www.dbonline.jp/mysql/type/index4.html

timestampとdatetimeの違い
https://qiita.com/ykawakami/items/2449a24e3b82ff0cbab6

timestampの例外
https://ts0818.hatenablog.com/entry/2017/08/11/155011

3
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
7