mysql的select自动将字符串转成date,但是insert和select一块用的时候,就不会自动转换
1 在select中,mysql自动将字符串转成date类型
1.1 select中
SELECT RATE.RATE_TYPE ,'2022-01-13' AS ACCEPT_OFFER_DATE ,RATE.COMMERCIAN_UNIT ,RATE_NUMERATOR ,RATE_DENOMINATOR , CAST( RATE_NUMERATOR AS DECIMAL(12,6) ) / RATE_DENOMINATOR AS RATE FROM ( SELECT 'YTD招聘完成率' AS RATE_TYPE , 'China' AS COMMERCIAN_UNIT , SUM( CASE WHEN A.WHETHER_FILL_UP_ONTIME IN ( '按时填补','超时填补' ) THEN A.CNT END ) AS RATE_NUMERATOR , SUM( CASE WHEN A.WHETHER_FILL_UP_ONTIME IN ( '按时填补','超时填补','超时未填补' ) THEN A.CNT END ) AS RATE_DENOMINATOR FROM ADS_RCM_EXECUTION_dev A WHERE 1 = 1 -- AND A.ACCEPT_THE_OFFER_TIME >= MAKEDATE(STR_TO_DATE('2022-01-13','%Y-%m-%d'),1) AND A.ACCEPT_THE_OFFER_TIME >= MAKEDATE('2022-01-13',1) AND A.ACCEPT_THE_OFFER_TIME <= '2022-01-13') RATE ;
1.2 加入inser后就报错了
INSERT INTO ADS_RCM_EXECUTION_BY_BU_ROLLING_dev ( RATE_TYPE , ACCEPT_THE_OFFER_TIME , COMMERCIAN_UNIT , RATE_NUMERATOR , RATE_DENOMINATOR , RATE ) SELECT RATE.RATE_TYPE ,'2022-01-13' AS ACCEPT_OFFER_DATE ,RATE.COMMERCIAN_UNIT ,RATE_NUMERATOR ,RATE_DENOMINATOR , CAST( RATE_NUMERATOR AS DECIMAL(12,6) ) / RATE_DENOMINATOR AS RATE FROM ( SELECT 'YTD招聘完成率' AS RATE_TYPE , 'China' AS COMMERCIAN_UNIT , SUM( CASE WHEN A.WHETHER_FILL_UP_ONTIME IN ( '按时填补','超时填补' ) THEN A.CNT END ) AS RATE_NUMERATOR , SUM( CASE WHEN A.WHETHER_FILL_UP_ONTIME IN ( '按时填补','超时填补','超时未填补' ) THEN A.CNT END ) AS RATE_DENOMINATOR FROM ADS_RCM_EXECUTION_dev A WHERE 1 = 1 -- AND A.ACCEPT_THE_OFFER_TIME >= MAKEDATE(STR_TO_DATE('2022-01-13','%Y-%m-%d'),1) AND A.ACCEPT_THE_OFFER_TIME >= MAKEDATE('2022-01-13',1) AND A.ACCEPT_THE_OFFER_TIME <= '2022-01-13') RATE ;
1.3 手动将MAKEDATE函数中字符串转成date,
INSERT INTO ADS_RCM_EXECUTION_BY_BU_ROLLING_dev ( RATE_TYPE , ACCEPT_THE_OFFER_TIME , COMMERCIAN_UNIT , RATE_NUMERATOR , RATE_DENOMINATOR , RATE ) SELECT RATE.RATE_TYPE ,'2022-01-13' AS ACCEPT_OFFER_DATE ,RATE.COMMERCIAN_UNIT ,RATE_NUMERATOR ,RATE_DENOMINATOR , CAST( RATE_NUMERATOR AS DECIMAL(12,6) ) / RATE_DENOMINATOR AS RATE FROM ( SELECT 'YTD招聘完成率' AS RATE_TYPE , 'China' AS COMMERCIAN_UNIT , SUM( CASE WHEN A.WHETHER_FILL_UP_ONTIME IN ( '按时填补','超时填补' ) THEN A.CNT END ) AS RATE_NUMERATOR , SUM( CASE WHEN A.WHETHER_FILL_UP_ONTIME IN ( '按时填补','超时填补','超时未填补' ) THEN A.CNT END ) AS RATE_DENOMINATOR FROM ADS_RCM_EXECUTION_dev A WHERE 1 = 1 AND A.ACCEPT_THE_OFFER_TIME >= MAKEDATE(STR_TO_DATE('2022-01-13','%Y-%m-%d'),1) -- AND A.ACCEPT_THE_OFFER_TIME >= MAKEDATE('2022-01-13',1) AND A.ACCEPT_THE_OFFER_TIME <= '2022-01-13') RATE ;
蓝天和白云是标配。
分类:
SQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端