从一串字符中显示日期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从一串字符中显示日期相关的知识,希望对你有一定的参考价值。
这是我的第一个问题,感谢您的支持。
我有一个包含许多列的旧数据库,但它不是DATE列。是的,我的错误。
但是,我有一个名为question_id的列,其中包含一些包含日期和时间的数据
2017113020440370769
前4位是YYYY,接下来的2位是MM,接下来的2位是DD。
我正在尝试查询提取这些字符以计算我在特定日期有多少问题。
我可以,在特定日期这样做:
SELECT COUNT(*)
FROM questions
WHERE question_id LIKE '20171228%';
但是我想每天为今天自动化这个,而不是每天输入YYYYMMDD%
可能吗?使用CURDATE?或者我可以使用任何特定的TIMESTAMP?
非常感谢你!
答案
是的,您可以使用外卡建立当前日期,如下所示:
SELECT COUNT(*)
FROM questions
WHERE question_id LIKE CONCAT(DATE_FORMAT(CURDATE(), '%Y%m%d'), '%');
这是特定的一天;今天。对于所有日期,您必须在question_id
的日期部分进行聚合,如下所示:
SELECT SUBSTR(question_id,1,8) ASKED_ON, COUNT(*) NUMBER_OF_QUESTIONS
FROM questions
GROUP BY SUBSTR(question_id,1,8);
另一答案
- 您可以通过以下方式获取今天的日期: CURDATE()
- 您可以使用DATE_FORMAT()格式化日期
- 你用CONCAT()连接字符串
这些都是你需要的砖块;-)
另一答案
试试这个:
SELECT LEFT('20171228ASD',8) = CURRENT_DATE();
SELECT COUNT(*)
FROM questions
WHERE LEFT(question_id',8) = CURRENT_DATE();
以上是关于从一串字符中显示日期的主要内容,如果未能解决你的问题,请参考以下文章