101

timestampデータ型を持つ MySQL テーブルにフィールドがあります。そのテーブルにデータを保存しています。しかし、タイムスタンプ ( ) をレコードに渡すと、値がそのテーブル1299762201428に自動的に保存されます。0000-00-00 00:00:00

タイムスタンプを MySQL テーブルに保存するにはどうすればよいですか?

これが私のINSERT声明です:

INSERT INTO table_name (id,d_id,l_id,connection,s_time,upload_items_count,download_items_count,t_time,status)
VALUES (1,5,9,'2',1299762201428,5,10,20,'1'),
       (2,5,9,'2',1299762201428,5,10,20,'1')
4

15 に答える 15

172

このように渡します

date('Y-m-d H:i:s','1299762201428')
于 2011-04-12T08:55:36.673 に答える
56

ちょっと、FROM_UNIXTIME()これには関数を使用してください。

このような:

INSERT INTO table_name
(id,d_id,l_id,connection,s_time,upload_items_count,download_items_count,t_time,status)
VALUES
(1,5,9,'2',FROM_UNIXTIME(1299762201428),5,10,20,'1'), 
(2,5,9,'2',FROM_UNIXTIME(1299762201428),5,10,20,'1')
于 2011-04-12T09:04:26.913 に答える
20
$created_date = date("Y-m-d H:i:s");
$sql = "INSERT INTO $tbl_name(created_date)VALUES('$created_date')";
$result = mysql_query($sql);
于 2014-02-28T11:26:10.720 に答える
16

明確にするべきいくつかのこと:

  • MySQL タイムスタンプ フィールド タイプは、UNIX タイムスタンプではなく、日時型の値を格納します。
  • UNIX タイムスタンプは通常の int 型の数値です。
  • あなたが話しているタイムスタンプは、通常のUNIXタイムスタンプではなく、ミリ秒のタイムスタンプです。

したがって、正しい答えは

$timestamp = '1299762201428';
$date = date('Y-m-d H:i:s', substr($timestamp, 0, -3));
于 2011-04-12T09:32:31.237 に答える
4

now()クエリでも同様に使用できます。つまり、次のようになります。

insert into table (time) values(now());

現在のタイムスタンプが使用されます。

于 2013-11-08T13:06:21.060 に答える
3

データ型' bigintunsigned 'がこの要件に適合する場合があります。

于 2011-04-12T09:00:11.827 に答える
2

値を保存しようとしているフィールドは日時フィールドであると推測していますが、タイムスタンプについても同じようです。その場合、mysql は形式が年-月-日 時:分:秒であると想定します。タイムスタンプを保存するには、次のようなクエリを使用してフィールドを数値に変換する必要があります

alter table <table_name> change <field> <field> bigint unsigned

現在の時刻を使用している場合は、now() または current_timestamp を使用できます。

于 2011-04-12T09:03:12.950 に答える
1

これはそれを行う必要があります:

  $time = new DateTime; 
于 2013-02-25T22:37:30.603 に答える
1

を使用しFROM_UNIXTIME()ます。

注: 1299762201428 はミリ秒のタイムスタンプ (JavaScript の Date()*1 など) に似ているため、おそらく 1000 で割る必要があります。

于 2011-04-12T09:06:24.133 に答える
1

テーブルのフィールドタイプを確認して、タイムスタンプ値をデータタイプ bigintなどに保存するだけです。

datetime入力しない

于 2011-04-12T09:09:08.717 に答える
0

タイムスタンプが現在の時刻である場合は、mysqlNOW()関数を使用できます

于 2011-04-12T08:58:23.800 に答える
0

datetimeフィールド タイプを使用します。人間の可読性 (誰もタイムスタンプを読み取らない) やMySQL 関数など、多くの利点があります。

UNIX タイムスタンプから変換するには、MySQL 関数を使用できますFROM_UNIXTIME(1299762201428)。元に戻すには、 : を使用できUNIX_TIMESTAMPますSELECT UNIX_TIMESTAMP(t_time) FROM table_name

もちろん、MySQL 関数が気に入らない場合は、いつでも PHP: を使用できます'INSERT INTO table_name SET t_time = ' . date('Y-m-d H:i:s', $unix_timestamp)

于 2011-04-12T09:06:34.647 に答える
0

より良いのは、 datatype を使用することvarchar(15)です。

于 2011-04-12T09:06:58.130 に答える