gpt4 book ai didi

mysql - 为什么 MySQL 存储过程将 X 日期时间转换为 NAME_CONST?

转载 作者:行者123 更新时间:2023-11-29 07:30:44 24 4
gpt4 key购买 nike

当我运行“show processlist”时,我是否应该担心 mysql 正在为我传入的日期时间参数使用 NAME_CONST()?

例如:

create procedure sp_test(IN startdate DATETIME, IN enddate DATETIME)
BEGIN
select * from my_table a
where a.visit_date between startdate and enddate;
END

我在任一 python 中调用它:

cursor.callproc('sp_test', ['2018-01-01 00:00:00', '2018-01-01 23:59:59'])

或者在我选择的 sql 客户端中:

call sp_test('2018-01-01 00:00:00', '2018-01-01 23:59:59');

当我查看“show processlist”时,我得到了这个(为了便于阅读而格式化了一点):

select * from my_table a
where a.visit_date between
NAME_CONST('startdate',_latin1'2018-01-01 00:00:00' COLLATE 'latin1_swedish_ci')
and NAME_CONST('enddate',_latin1'2018-01-01 23:59:59' COLLATE 'latin1_swedish_ci')

我很好奇这是否正确?我传递的日期时间错误吗?

最佳答案

别担心,一切都是正确的。这只是 MySQL 的内部转换。

阅读有关函数 here 的更多信息

所提供链接的一些摘录:

Returns the given value. When used to produce a result set column, NAME_CONST() causes the column to have the given name.

This function is for internal use only. The server uses it when writing statements from stored programs that contain references to local program variables

关于mysql - 为什么 MySQL 存储过程将 X 日期时间转换为 NAME_CONST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51400135/

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