Mysql

MySQL 中“microtime”列的預設值

  • September 13, 2015

我的興趣是用 6 的 FSP 儲存時間。正如我所讀到的,這不能用TIMESTAMPorDATETIME數據類型來實現。所以,我有一個double欄位來儲存microtime函式的輸出。

無論如何我可以為這樣的欄位設置(甚至編寫一些程式碼來創建)預設值嗎?

我想使用類似的東西NOW(6)並得到1442059062.065123例如。

您可以使用UNIX_TIMESTAMP如下格式對其進行格式化:

mysql> SELECT UNIX_TIMESTAMP(NOW(6));
+------------------------+
| UNIX_TIMESTAMP(NOW(6)) |
+------------------------+
|      1442068528.543100 |
+------------------------+
1 row in set (0,00 sec)

mysql> 

**您可以在此處**找到任何其他日期和時間功能。你可以添加一個,如果你想要你的microtimetrigger的預設值,使用並替換你的.decimal(16, 6) BEFORE INSERT``NEW.bigintvalue=UNIX_TIMESTAMP(NOW(6));

例子:

mysql> CREATE TABLE `test`.`test1` (
   ->   `id` INT NOT NULL AUTO_INCREMENT,
   ->   `time` DECIMAL(16, 6) NULL,
   ->   PRIMARY KEY (`id`));
Query OK, 0 rows affected (0.01 sec)

mysql> 
mysql> DELIMITER //
mysql> CREATE DEFINER=`root`@`localhost` TRIGGER `test`.`test1_BEFORE_INSERT` BEFORE INSERT ON `test1` FOR EACH ROW
   -> BEGIN
   -> SET NEW.time=UNIX_TIMESTAMP(NOW(6));
   -> END
   -> //
Query OK, 0 rows affected (0.00 sec)

mysql> DELIMITER ;
mysql> 
mysql> # Adding 1 into id field
mysql> INSERT INTO `test`.`test1` (`id`) VALUES ('1');
Query OK, 1 row affected (0.00 sec)

mysql> select * from test.test1;
+----+-------------------+
| id | time              |
+----+-------------------+
|  1 | 1442069359.675330 |
+----+-------------------+
1 row in set (0.00 sec)

mysql> 

引用自:https://dba.stackexchange.com/questions/114850