转换字符串仅限时间

时间:2016-11-10 07:16:08

标签: mysql

我有一个列,其日期值保存为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而没有时间戳

有没有办法解决这个问题

2 个答案:

答案 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), '%');