mysql 日期时间查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 日期时间查询相关的知识,希望对你有一定的参考价值。

如图

mysql 日期时间查询
MySQL数据库中year()函数是求某个特定日期中的年份,代码如下:
select \'2015-08-11\' as date,year(\'2015-08-11\') as year;
确定一个日期是一年中的第几个季度,可以用QUARTER()函数实现,代码如下:

SELECT \'2015-08-11\' AS DATE,QUARTER(\'2015-08-11\') AS QUARTER;
返回一个日期是一年中的月份,利用month()函数实现,代码如下:

SELECT \'2015-08-11\' AS DATE,MONTH(\'2015-08-11\') AS MONTH;
获取一个确定日期是一个月份中的多少号,可以用day()函数求得,具体实现代码如下:

SELECT \'2015-08-11\' AS DATE,DAY(\'2015-08-11\') AS DAY;
有时日期中带有时间,而如何获取小时数,这可以利用自带的函数hour()实现,代码如下:

SELECT \'2015-08-11 12:20:45\' AS DATE,HOUR(\'2015-08-11 12:20:45\') AS HOUR;
参考技术A 要问的是以日期时间做为查询条件来检索数据?
select * from table where data >='2011-03-03 00:00' and data<='2011-03-03 23:59'本回答被提问者采纳
参考技术B 你是不是建表的时候没有加“创建时间(created_at)”和“修改时间(updated_at)”这两个时间戳,如果有的话就可以使用查询语句select * from table where created_at >= '2011-05-20 00:00' and created_at<='2011-06-19 23:59'
如果通过url来进行查询的话,请恕我无能为力
嗯,其实还有个笨方法,select * from table where url >= 'www.163.com/article/20110520/0.html' and url<='www.163.com/article/20110619/999999.html'
后面这这网页数大一点,这个我试过了可以的,你可以试试
参考技术C 垃圾百度

查询从日期时间转换为日期mysql

【中文标题】查询从日期时间转换为日期mysql【英文标题】:Query to convert from datetime to date mysql 【发布时间】:2011-06-12 01:18:49 【问题描述】:

我正在尝试获取日期时间字段的日期部分。我知道我可以使用 date_format 获取它,但它会返回一个字符串或“varchar”字段。如何将结果转换为日期而不是 varchar?

这是我返回 varchar 的查询:

(Select Date_Format(orders.date_purchased,'%m/%d/%Y')) As Date  

我尝试了这个问题的几种组合,但无法使其发挥作用:

mysql query - format date on output?

感谢任何帮助。

【问题讨论】:

感谢这个解决方案对我非常有用 【参考方案1】:

尝试将其转换为 DATE

SELECT CAST(orders.date_purchased AS DATE) AS DATE_PURCHASED

【讨论】:

【参考方案2】:

使用DATE function:

SELECT DATE(orders.date_purchased) AS date

【讨论】:

它告诉我“DATE”不是一个公认的内置函数名。” 像魅力一样工作。谢谢【参考方案3】:

我看到了许多类型的用途,但我发现这个布局作为参考工具更有用:

SELECT DATE_FORMAT('2004-01-20' ,'%Y-%m-01');

【讨论】:

【参考方案4】:

Cyber​​nate 或 OMG Ponies 解决方案都可以使用。根本问题是DATE_FORMAT() 函数返回一个字符串,而不是日期。当你写了

(Select Date_Format(orders.date_purchased,'%m/%d/%Y')) As Date 

我认为您实际上是在要求 MySQL 尝试根据该格式字符串格式化 date_purchased 中的值,而不是调用该列 date_purchased,而是将其称为“日期”。但是该列将不再包含日期,它将包含一个字符串。 (因为Date_Format() 返回的是字符串,而不是日期。)

我不认为那是你想做的,但那是你正在做的。

不要将值的外观与值的含义混淆。

【讨论】:

【参考方案5】:

date_format 的语法:

SELECT date_format(date_born, '%m/%d/%Y' ) as my_date FROM date_tbl

    '%W %D %M %Y %T'    -> Wednesday 5th May 2004 23:56:25
    '%a %b %e %Y %H:%i' -> Wed May 5 2004 23:56
    '%m/%d/%Y %T'       -> 05/05/2004 23:56:25
    '%d/%m/%Y'          -> 05/05/2004
    '%m-%d-%y'          -> 04-08-13

【讨论】:

以上是关于mysql 日期时间查询的主要内容,如果未能解决你的问题,请参考以下文章

查询从日期时间转换为日期mysql

从日期时间字段Mysql查询中获取日期

Mysql 查询获取日期时间紧跟当前日期时间之后的记录

mysql如何查询两个日期之间最大的连续登录

mysql 日期排序查询,就是有张表,但是表的时间不全,但是我想没有数据的日期也查出来,怎么搞?

mysql 如何实现Oracle中的这种日期查询?