MariaDB,SQL,如何显示更好的分辨率

vx6bjr1n  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(91)

我写了一个存储过程来执行一个任务,它工作,但是在过程结束时,我想显示一个显示更好分辨率的摘要,这是我所拥有的:

SELECT
        CONCAT("Tickets requested: ", intTickets)
       ,CONCAT("Tickets reserved: ", intTicketsReserved)
       ,CONCAT("Start time: ", tsStart)
       ,CONCAT("End time: ", tsEnd)
       ,CONCAT("Elapsed: ", TIMESTAMPDIFF(SECOND, tsStart, tsEnd), " seconds");

字符串
进入存储过程时:

#Timestamp before we start
    SET tsStart = NOW();


在存储过程结束时,在显示摘要之前:

#Timestamp now so we can work out elapsed time taken
    SET tsEnd = NOW();


输出只显示数据和时间,没有微秒,我可以修改它来显示微秒,这是我到目前为止看到的:

'Tickets requested: 2500', 'Tickets reserved: 2347', 'Start time: 2024-01-03 12:35:46', 'End time: 2024-01-03 12:35:48', 'Elapsed: 2 seconds'


我已经尝试过将SECOND更改为MICROSECOND,这只会导致最后一列显示2000000,我希望在开始和结束时间之后看到微秒,并将经过的时间以小数形式显示秒和微秒。

relj7zay

relj7zay1#

要获取微秒,您必须将微秒数(精度)传递给NOW():
范例:

set @a:= NOW(6);
set @x:= SLEEP(5);
set @b:= NOW(6);

SELECT TIMESTAMPDIFF(MICROSECOND, @a,@b) / 1000000 AS Seconds;
+---------+
| Seconds |
+---------+
|  5.0150 |
+---------+

字符串
标签:NOW()

相关问题