MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでタイムスタンプ値を整数に変換する際、マイクロ秒を追加すると何が返されるのか?

MySQLでは、UNIX_TIMESTAMP() 関数を使うことで、タイムスタンプの値を秒数(整数)に変換することができます。ここで重要なポイントは、タイムスタンプの値にマイクロ秒を追加しても、MySQLはそれを無視するという点です。その理由は、UNIX_TIMESTAMP の戻り値が10桁の整数であるためです。

具体例

まず、マイクロ秒を含まない通常のタイムスタンプ値を変換してみましょう。

mysql> SELECT UNIX_TIMESTAMP('2017-10-22 04:05:36') AS '合計秒数';
+--------------+
| 合計秒数     |
+--------------+
| 1508625336   |
+--------------+
1 row in set (0.00 sec)

次に、同じタイムスタンプにマイクロ秒(小数点以下6桁)を追加して変換してみます。

mysql> SELECT UNIX_TIMESTAMP('2017-10-22 04:05:36.200000') AS '合計秒数';
+--------------+
| 合計秒数     |
+--------------+
| 1508625336   |
+--------------+
1 row in set (0.00 sec)

結果の解説

上記の2つのクエリの出力結果を見ると、どちらも同じ値「1508625336」が返されていることがわかります。つまり、タイムスタンプにマイクロ秒の値(.200000)を追加しても、出力結果はまったく変わりません。

これは、UNIX_TIMESTAMP() 関数が返す値が10桁の整数であり、マイクロ秒レベルの精度を保持できないためです。したがって、秒単位の精度で十分な場合にこの関数を使用し、マイクロ秒まで必要とする場合は別の方法を検討する必要があります。

  1. MySQLのSMALLINTに相当するJavaの型は?short型との対応関係を解説

    MySQLのSMALLINTに相当するJavaのデータ型は、short型です。Javaのshort型は2バイト(16ビット)の符号付き整数で、-32768から32767までの範囲の値を扱うことができます。MySQLのSMALLINTも同様に2バイトで、同じ範囲の値を格納可能です。MySQLのSMALLINTとJavaのshort型の比較項目MySQL(SMALLINT)Java(short)サイズ2バイト(16ビット)2バイト(16ビット)値の範囲-32768 ~ 32767-32768 ~ 32767備考UNSIGNEDを指定すると0 ~ 65535になる符号付きのみなお、MySQLでUNS

  2. MySQLクエリでIF文を使う正しい方法を徹底解説

    MySQLのクエリ内で条件分岐を行いたい場合、IF関数を使用します。SELECT文の中にIFを組み込むことで、条件の結果に応じて異なる値を返すことができます。IF関数の基本構文MySQLクエリにIFステートメントを挿入するには、以下の構文を使用します。SELECT yourColumnName, IF(yourCondition, yourStatement1, yourStatement2) FROM yourTableName;IF関数は3つの引数を取ります。第1引数(yourCondition):評価される条件式第2引数(yourStatement1):条件がTRUEの場合に返す値第3引