从一串字符中显示日期

问题描述 投票:0回答:3

这是我的第一个问题,感谢您的支持。

我有一个包含许多列的旧数据库,但它不是DATE列。是的,我的错误。

但是,我有一个名为question_id的列,其中包含一些包含日期和时间的数据

2017113020440370769

前4位是YYYY,接下来的2位是MM,接下来的2位是DD。

我正在尝试查询提取这些字符以计算我在特定日期有多少问题。

我可以,在特定日期这样做:

SELECT COUNT(*) 
FROM questions 
WHERE question_id LIKE '20171228%'; 

但是我想每天为今天自动化这个,而不是每天输入YYYYMMDD%

可能吗?使用CURDATE?或者我可以使用任何特定的TIMESTAMP?

非常感谢你!

mysql date timestamp
3个回答
0
投票

是的,您可以使用外卡建立当前日期,如下所示:

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);

0
投票

这些都是你需要的砖块;-)


0
投票

试试这个:

SELECT LEFT('20171228ASD',8) = CURRENT_DATE();


SELECT COUNT(*) 
FROM questions 
WHERE LEFT(question_id',8) = CURRENT_DATE();
© www.soinside.com 2019 - 2024. All rights reserved.