1
shell> cat /data/mysql/tm.sql
1276609796
1276606325

mysql> CREATE TABLE `tm_table` ( f TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP);
Query OK, 0 rows affected

mysql> LOAD DATA INFILE '/data/mysql/tm.sql' INTO TABLE tm_table;
Query OK, 2 rows affected
Records: 2  Deleted: 0  Skipped: 0  Warnings: 2

mysql> SHOW WARNINGS;
+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1265 | Data truncated for column 'f' at row 1 |
| Warning | 1265 | Data truncated for column 'f' at row 2 |
+---------+------+----------------------------------------+
2 rows in set

mysql> SELECT f FROM tm_table;
+---------------------+
| f                   |
+---------------------+
| 0000-00-00 00:00:00 |
| 0000-00-00 00:00:00 |
+---------------------+
2 rows in set

日付をタイムスタンプ形式で保持することを好みます。タイムスタンプデータをファイルからmysqlにアップロードする方法は?

4

2 に答える 2

4

解決策が見つかりました。アイデアをありがとうthe_void。

mysql> LOAD DATA INFILE '/data/mysql/tm.sql' INTO TABLE tm_table
    -> (@var1) SET f=FROM_UNIXTIME(@var1);
Query OK, 2 rows affected
Records: 2  Deleted: 0  Skipped: 0  Warnings: 0

mysql> select f from tm_table;
+---------------------+
| f                   |
+---------------------+
| 2010-06-15 16:52:05 |
| 2010-06-15 17:49:56 |
+---------------------+
2 rows in set
于 2010-06-20T21:36:19.340 に答える
0

FROM_UNIXTIME次のような関数を使用する必要があります。

#!/bin/bash

FILENAME=$1
TEMP=temp.txt

for LINE in $(cat $FILENAME); do
    echo "INSERT INTO tm_table(f) VALUES(FROM_UNIXTIME(`echo $LINE | tr -d '\r\n'`));" >> $TEMP
done

mysql -u XXX --password=XXX < $TEMP

rm $TEMP
于 2010-06-19T17:52:47.933 に答える