MySQL真的不支持日期格式化@variables吗?

时间:2011-02-15 13:24:09

标签: mysql

我是一名经验丰富的SQL Server开发人员,负责处理Mysql项目。我简直不敢相信Mysql不支持日期格式的@variables!虽然我看到(底部)文档中的内容,因为我设计了一个查询来保存@var中每个客户的第一个活动日期,我仍然很想尝试:

set @mydate = STR_TO_DATE('Dec/15/2008', '%M/%d/%Y');
select @mydate; 

但是我得到了BLOB的值,我收集的是Mysql的撑船方式。

所以我问,以下真的意味着没有格式化@vars的日期吗?为什么MYSQL会这样设计? MYSQL源代码中@vars的代码在哪里?:

来自MYSQL doc的

: 用户定义的变量可以从一组有限的数据类型中分配一个值:整数,十进制,浮点,二进制或非二进制字符串或NULL值。

2 个答案:

答案 0 :(得分:2)

迟到的回答让我疯了!它在工作台中返回Blob但从命令行抛出一个整理错误。

您需要将该字段转换为日期 - 使用date_format似乎会混淆数据类型。

E.g。

SET @StartDate := CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') AS Date);  -- start of the month

答案 1 :(得分:1)

也许这会起作用(char似乎不那么成问题)

set @mydate = cast( STR_TO_DATE('Dec/15/2008', '%M/%d/%Y') as char);

或保留原始datetime

set @mydate = cast( STR_TO_DATE('Dec/15/2008', '%M/%d/%Y') as datetime);