我有一个列,其日期值保存为varchar,格式为
date_n date_s
2016-11-10::12:36:05 2016-NOV-10::12:36:05
2016-11-10 2016-NOV-10
现在我需要的是从两个列中获取日期,但我只能从列date_n
获取时间戳而不是来自date_s
我尝试的查询
SELECT * FROM table where CAST(date_n AS DATE)=CURDATE();
返回两个元素作为结果,但当我将date_n
更改为date_s
时返回空,我只需要输出为date
而没有时间戳
有没有办法解决这个问题
答案 0 :(得分:0)
嗨试试这个逻辑
WHERE TRIM(UPPER(SUBSTRING_INDEX(date_s,':',1))) =
TRIM(CONCAT(YEAR(NOW()),'
-',UPPER(SUBSTRING((MONTHNAME(STR_TO_DATE(MONTH(NOW()),'%m'))),1,3)),'-',DAY(NOW())))
答案 1 :(得分:0)
WHERE date_s LIKE CONCAT(YEAR(NOW()),'-',UPPER(SUBSTRING(MONTHNAME(NOW()), 1, 3)),SUBSTRING(CURRENT_DATE(), 8), '%');