在存储过程中使用CURRENT_DATE()+0;
返回的值就是2013-11-09;要是在外面直接使用 select CURRENT_DATE()+0;
得到的值就是20131109;求大神们帮忙解释什么原因,如果想在存储过程中使用该如何用CURRENT_DATE()+0这个日期函数?create procedure P_CreateID (in tableName varchar(5),out _time date)
begin
DECLARE strtime char(10);
DECLARE _exp int default 0;
DECLARE ff VARCHAR(20);
DECLARE len TINYINT DEFAULT 0;
DECLARE curNo int DEFAULT 0;
set _time = CURRENT_DATE()+ 0; --各种实验得到的值就是不对
set strtime = CONVERT(_time,CHAR(10));
SELECT currentNo,noLen into curNo, len from `code` where codeName = tableName for UPDATE;
set ff = RIGHT(POWER(10,len)+curNo+1,len);
set BH = concat(tableName,strtime,ff);
update Code set currentNo=currentNo+1 where codeName = tableName;
end; mysql时间函数 CURRENT_DATE()
返回的值就是2013-11-09;要是在外面直接使用 select CURRENT_DATE()+0;
得到的值就是20131109;求大神们帮忙解释什么原因,如果想在存储过程中使用该如何用CURRENT_DATE()+0这个日期函数?create procedure P_CreateID (in tableName varchar(5),out _time date)
begin
DECLARE strtime char(10);
DECLARE _exp int default 0;
DECLARE ff VARCHAR(20);
DECLARE len TINYINT DEFAULT 0;
DECLARE curNo int DEFAULT 0;
set _time = CURRENT_DATE()+ 0; --各种实验得到的值就是不对
set strtime = CONVERT(_time,CHAR(10));
SELECT currentNo,noLen into curNo, len from `code` where codeName = tableName for UPDATE;
set ff = RIGHT(POWER(10,len)+curNo+1,len);
set BH = concat(tableName,strtime,ff);
update Code set currentNo=currentNo+1 where codeName = tableName;
end; mysql时间函数 CURRENT_DATE()
解决方案 »
- 加个引号和不加引号我发现区别很多 不明白
- red hat linux5 下的 my.cnf 在哪?
- 关于 ado 的 recordsetPtr 使用
- mysql 存储过程 的PHP调用
- MYSQL的 *.frm, *.myd,*.myi的文件格式是什么样的
- 令我迷惑的sql语句问题,麻烦大家帮忙看看
- mysql如何实现远程连接?急!
- 关于MySQL中创建数据库的问题????
- BUG 去哪看
- mysql中关于check约束撤销的问题
- mysql 怎样实现 在sql 语句 中 获取远程mysql 的数据 并 关连 本地的数据 显示出来??
- Mysql5.1安装后在环境变量里没有配置 需不需要手动配置
+-------------------+
| current_date()+30 |
+-------------------+
| 20131139 |
+-------------------+
1 row in set (0.00 sec)
int = curdate() + 0先将 curdate() 转换为数字,然后再加。而后,_time为日期型数据,
_time = INT, 则再一次数据类型转换。