166

現在の日付と時刻を挿入するために手動クエリで使用できる DATETIME のような値またはコマンドはありますか?

INSERT INTO servers (
  server_name, online_status, exchange, disk_space, network_shares
) VALUES(
  'm1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE' 'DATETIME' 
)

最後に引用された DATETIME 値は、現在の日付と時刻を追加したい場所です。

4

10 に答える 10

294

使用できますNOW()

INSERT INTO servers (server_name, online_status, exchange, disk_space, network_shares, c_time)
VALUES('m1', 'ONLINE', 'exchange', 'disk_space', 'network_shares', NOW())
于 2013-10-08T11:19:28.193 に答える
33

CURRENT_TIMESTAMP()または now()を使用する

お気に入り

INSERT INTO servers (server_name, online_status, exchange, disk_space,
network_shares,date_time) VALUES('m1','ONLINE','ONLINE','100GB','ONLINE',now() )

また

INSERT INTO servers (server_name, online_status, exchange, disk_space,
network_shares,date_time) VALUES('m1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE'
,CURRENT_TIMESTAMP() )

date_time を、時刻の挿入に使用する列名に置き換えます。

于 2013-10-08T11:21:47.553 に答える
29

多くの受け入れられた答えがありますが、この方法も可能だと思います:

次のように「サーバー」テーブルを作成します

CREATE TABLE `servers`
(
      id int(11) NOT NULL PRIMARY KEY auto_increment,
      server_name varchar(45) NOT NULL,
      online_status varchar(45) NOT NULL,
      _exchange varchar(45) NOT NULL, 
      disk_space varchar(45) NOT NULL,
      network_shares varchar(45) NOT NULL,
      date_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
);

そして、INSERTステートメントは次のようになります

INSERT INTO servers (server_name, online_status, _exchange, disk_space, network_shares)
VALUES('m1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE');

私の環境:

4GB RAM を搭載した Core i3 Windows ラップトップ。上記の例を MySQL Workbench 6.2 (バージョン 6.2.5.0 ビルド 397 64 ビット) で実行しました。

于 2015-05-10T09:05:12.947 に答える
7

はい、CURRENT_TIMESTAMP()コマンドを使用できます。

ここを参照してください:日付と時刻の関数

于 2013-10-08T11:20:48.850 に答える
5

正解はSYSDATE()です。

INSERT INTO servers (
    server_name, online_status, exchange, disk_space,
    network_shares, date_time
)
VALUES (
    'm1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE', SYSDATE()
);

この動作を変更して、 sysdate_is_nowコマンド ライン引数を に設定NOW()するのと同じように動作させることができます。SYSDATE()True

NOW()(エイリアスとして持っている)は、微妙な方法CURRENT_TIMESTAMP()で異なることに注意してください。SYSDATE()

SYSDATE() は、実行時刻を返します。これは、ステートメントの実行が開始された時刻を示す一定の時間を返す NOW() の動作とは異なります。(ストアド関数またはトリガー内では、NOW() は、関数またはトリガーステートメントの実行が開始された時刻を返します。)

Erandiで示されDEFAULTているように、新しい行を挿入するときにタイムスタンプが列に自動的に入力されるように、句を使用してテーブルを作成することをお勧めします。

date_time datetime NOT NULL DEFAULT SYSDATE()

エポック形式の現在の日付が必要な場合は、 UNIX_TIMESTAMP()を使用できます。例えば:

select now(3), sysdate(3), unix_timestamp();

譲るだろう

+-------------------------+-------------------------+------------------+
| now(3)                  | sysdate(3)              | unix_timestamp() |
+-------------------------+-------------------------+------------------+
| 2018-11-27 01:40:08.160 | 2018-11-27 01:40:08.160 |       1543282808 |
+-------------------------+-------------------------+------------------+

関連している:

于 2018-11-27T01:39:25.740 に答える
0

だけでなく、 と も使用できnow()ます。誤った表示タイムスタンプの主な理由は、一重引用符でNOW() を挿入することです! このIDEがmysql関数に単一引用符を追加し、すぐに認識しなかったため、MySQL Workbenchでは機能しませんでした)current_timestamp()localtimestamp()

MySQL Workbench のように単一引用符を含む関数を使用しないでください。うまくいきません。

于 2014-08-07T09:15:42.050 に答える
-9
$rs = $db->Insert('register',"'$fn','$ln','$email','$pass','$city','$mo','$fil'","'f_name','l_name=','email','password','city','contact','image'");
于 2014-05-21T06:07:27.310 に答える