Ruby

2015-09-27, ruby mysql

mysql2結果セットの型

ちょっと調べてみました。以下のようなテーブルとレコードを用意します。

mysql> CREATE TABLE t (i INT,f FLOAT,d DECIMAL,b BOOLEAN,v VARCHAR(8),da DATE,dt DATETIME,ts TIMESTAMP);
Query OK, 0 rows affected (0.09 sec)

mysql> INSERT INTO t VALUES (1,2.0,3.0,true,'v',now(),now(),now());
Query OK, 1 row affected, 1 warning (0.00 sec)

検証に使用したコードは以下のとおりです。

require 'mysql2'

client = Mysql2::Client.new(host:"localhost",username:"root",database:"t")

results = client.query("SELECT * FROM t")
results.each do |row|
  row.keys.each do |f|
    puts f+": "+row[f].to_s+" "+row[f].class.name
  end
end

booleanの扱いに注意が必要ですが、あとはまあ直感的ですね。

i: 1 Fixnum
f: 2.0 Float
d: 3 Fixnum
b: 1 Fixnum
v: v String
da: 2015-09-26 Date
dt: 2015-09-26 23:58:30 +0900 Time
ts: 2015-09-26 23:58:30 +0900 Time

参考URL

この記事は役に立ちましたか?