gpt4 book ai didi

mysql - 寻求 TSQLTimeStamp 的编码示例

转载 作者:行者123 更新时间:2023-11-29 03:51:21 27 4
gpt4 key购买 nike

Delphi XE2 和 MySql。

我的 previous question导致建议我应该使用 MySql 的 native TIMESTAMP 数据类型来存储日期/时间。

不幸的是,我似乎找不到任何编码示例,而且我得到的结果很奇怪。

给定这张表:

mysql> describe test_runs;
+------------------+-------------+------+-----+---------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------------------+-------+
| start_time_stamp | timestamp | NO | PRI | 0000-00-00 00:00:00 | |
| end_time_stamp | timestamp | NO | | 0000-00-00 00:00:00 | |
| description | varchar(64) | NO | | NULL | |
+------------------+-------------+------+-----+---------------------+-------+
3 rows in set (0.02 sec)

我想:

  • 声明一个变量,我可以在其中存储 SELECT CURRENT_TIMESTAMP 的结果 - 它应该是什么类型? TSQLTimeStamp?
  • 在测试开始时插入一行 start_time_stamp = 上面的变量
  • end_time_stamp = 一些“NULL”值...“0000-00-00 00:00:00”?我可以直接使用它,还是需要声明一个 TSQLTimeStamp 并将每个字段设置为零? (似乎没有 TSQLTimeStamp.Clear; - 它是一个结构,而不是一个类
  • 在测试完成时更新end_time_stamp
  • 计算测试持续时间

有人可以给我一个 URL 和一些 Delphi 代码,我可以研究它来了解如何做这类事情吗? GINMF.

最佳答案

我不知道您为什么要为那个 TIMESTAMP 烦恼,为什么要检索 CURRENT_TIMESTAMP 只是为了把它放回去。

并且如前所述,使用 TIMESTAMP 字段作为 PRIMARY KEY 并不是一个好的建议。

所以我的建议是使用这个TABLE SCHEMA

CREATE TABLE `test_runs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`start_time_stamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`end_time_stamp` timestamp NULL DEFAULT NULL,
`description` varchar(64) NOT NULL,
PRIMARY KEY (`id`)
);

开始测试运行由

处理
INSERT INTO test_runs ( description ) VALUES ( :description );
SELECT LAST_INSERT_ID() AS id;

并完成您只需调用的记录

UPDATE test_runs SET end_time_stamp = CURRENT_TIMESTAMP WHERE id = :id

关于mysql - 寻求 TSQLTimeStamp 的编码示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13487922/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com