查询一天:

select * from table where to_days(column_time) =to_days(now());select * from table where date(column_time) = curdate();

查询恰一天

select date_format(now(),'%Y-%m-%d'); --当天日期格式

select now(); --当天日期+时间

select date_sub(curdate(),interval 1 day); --前一天

查询一周:

select * from table where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);

查询一个月:

select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column_time);

mysql的日期和时间函数

查询选择所有 date_col 值在最后 30 天内的记录。

mysql> SELECT something FROM tbl_name WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30; //真方便,以前都是自己写的,竟然不知道有这,失败.

DAYOFWEEK(date)

返回 date 的星期索引(1 = Sunday, 2 = Monday, ... 7 = Saturday)。索引值符合 ODBC 的标准。

mysql> SELECT DAYOFWEEK(’1998-02-03’);-> 3

WEEKDAY(date)

返回 date 的星期索引(0 = Monday, 1 = Tuesday, ... 6 = Sunday):

mysql> SELECT WEEKDAY(’1998-02-03 22:23:00’);-> 1mysql> SELECT WEEKDAY(’1997-11-05’);-> 2

DAYOFMONTH(date)

返回 date 是一月中的第几天,范围为 1 到 31:

mysql> SELECT DAYOFMONTH(’1998-02-03’);-> 3

DAYOFYEAR(date)

返回 date 是一年中的第几天,范围为 1 到 366:

mysql> SELECT DAYOFYEAR(’1998-02-03’);-> 34

MONTH(date)

返回 date 中的月份,范围为 1 到 12:

mysql> SELECT MONTH(’1998-02-03’);-> 2

DAYNAME(date)

返回 date 的星期名:

mysql> SELECT DAYNAME("1998-02-05");-> ’Thursday’

MONTHNAME(date)

返回 date 的月份名:

mysql> SELECT MONTHNAME("1998-02-05");-> ’February’

QUARTER(date)

返回 date 在一年中的季度,范围为 1 到 4:

mysql> SELECT QUARTER(’98-04-01’);-> 2WEEK(date)

WEEK(date,first)

对于星期日是一周中的第一天的场合,如果函数只有一个参数调用,返回 date 为一年的第几周,返回值范围为 0 到 53 (是的,可能有第 53 周的开始)。两个参数形式的 WEEK() 允许你指定一周是否以星期日或星期一开始,以及返回值为 0-53 还是 1-52。 这里的一个表显示第二个参数是如何工作的:

值 含义

0 一周以星期日开始,返回值范围为 0-53

1 一周以星期一开始,返回值范围为 0-53

2 一周以星期日开始,返回值范围为 1-53

3 一周以星期一开始,返回值范围为 1-53 (ISO 8601)

mysql> SELECT WEEK(’1998-02-20’);-> 7mysql> SELECT WEEK(’1998-02-20’,0);-> 7mysql> SELECT WEEK(’1998-02-20’,1);-> 8mysql> SELECT WEEK(’1998-12-31’,1);-> 53

注意,在版本 4.0 中,WEEK(#,0) 被更改为匹配 USA 历法。 注意,如果一周是上一年的最后一周,当你没有使用 2 或 3 做为可选参数时,MySQL 将返回 0:

mysql> SELECT YEAR(’2000-01-01’), WEEK(’2000-01-01’,0);-> 2000, 0mysql> SELECT WEEK(’2000-01-01’,2);-> 52

你可能会争辩说,当给定的日期值实际上是 1999 年的第 52 周的一部分时,MySQL 对 WEEK() 函数应该返回 52。我们决定返回 0 ,是因为我们希望该函数返回“在指定年份中是第几周”。当与其它的提取日期值中的月日值的函数结合使用时,这使得 WEEK() 函数的用法可靠。 如果你更希望能得到恰当的年-周值,那么你应该使用参数 2 或 3 做为可选参数,或者使用函数 YEARWEEK() :

mysql> SELECT YEARWEEK(’2000-01-01’);-> 199952mysql> SELECT MID(YEARWEEK(’2000-01-01’),5,2);-> 52

YEAR(date)

返回 date 的年份,范围为 1000 到 9999:

mysql> SELECT YEAR(’98-02-03’);-> 1998

YEARWEEK(date)

YEARWEEK(date,first)

返回一个日期值是的哪一年的哪一周。第二个参数的形式与作用完全与 WEEK() 的第二个参数一致。注意,对于给定的日期参数是一年的第一周或最后一周的,返回的年份值可能与日期参数给出的年份不一致:

mysql> SELECT YEARWEEK(’1987-01-01’);-> 198653

注意,对于可选参数 0 或 1,周值的返回值不同于 WEEK() 函数所返回值(0), WEEK() 根据给定的年语境返回周值。

HOUR(time)

返回 time 的小时值,范围为 0 到 23:

mysql> SELECT HOUR(’10:05:03’);-> 10

MINUTE(time)

返回 time 的分钟值,范围为 0 到 59:

mysql> SELECT MINUTE(’98-02-03 10:05:03’);-> 5

SECOND(time)

返回 time 的秒值,范围为 0 到 59:

mysql> SELECT SECOND(’10:05:03’);-> 3

PERIOD_ADD(P,N)

增加 N 个月到时期 P(格式为 YYMM 或 YYYYMM)中。以 YYYYMM 格式返回值。 注意,期间参数 P 不是 一个日期值:

mysql> SELECT PERIOD_ADD(9801,2);-> 199803

PERIOD_DIFF(P1,P2)

返回时期 P1 和 P2 之间的月数。P1 和 P2 应该以 YYMM 或 YYYYMM 指定。 注意,时期参数 P1 和 P2 不是 日期值:

mysql> SELECT PERIOD_DIFF(9802,199703);-> 11

DATE_ADD(date,INTERVAL expr type)

DATE_SUB(date,INTERVAL expr type)

ADDDATE(date,INTERVAL expr type)

SUBDATE(date,INTERVAL expr type)

这些函数执行日期的算术运算。ADDDATE() 和 SUBDATE() 分别是 DATE_ADD() 和 DATE_SUB() 的同义词。

在 MySQL 3.23 中,如果表达式的右边是一个日期值或一个日期时间型字段,你可以使用 + 和 - 代替 DATE_ADD() 和 DATE_SUB()(示例如下)。 参数 date 是一个 DATETIME 或 DATE 值,指定一个日期的开始。expr 是一个表达式,指定从开始日期上增加还是减去间隔值。expr 是一个字符串;它可以以一个 “-” 领头表示一个负的间隔值。type 是一个关键词,它标志着表达式以何格式被解释。

mysql一个月有几个周几_mysql-查询一天,一周,一月,一年,以及mysql的基本日期函数...相关推荐

  1. mysql 一个月以前_mysql查询昨天 一周前 一月前 一年前的数据

    mysql 昨天 一周前 一月前 一年前的数据 这里主要用到了DATE_SUB, 参考如下 代码如下: SELECT * FROM yh_content where inputtime>DATE ...

  2. mysql select后面能跟多少个表_mysql查询语句中,FROM后面可以跟具体的表名,也可以跟一个查询结果...

    /* FROM后面可以跟具体的表名,也可以跟一个查 询结果(此查询结果其实就是相当于一张表, 注意:必须要给它取一个别名) */ #给查询结果取别名 SELECT * FROM book, (SELE ...

  3. mysql查找名字含A的的姓名_mysql查询结果排序,name字段有中文名字,有英文名字,如何按a-z的顺序把名字排序...

    1.name字段用来存储客户姓名,查询结果需要按姓氏拼音排序,现在有一个问题, 名字既有中文名字,又有英文名字,比如 张三,李四,Jaewon Park,老王 这样查询出来的结果英文名字的人永远排第一 ...

  4. mysql测试表格的年龄的语句是_MySQL查询语句练习题

    Sutdent表的定义 Sutdent表的定义 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 学号 INT(10) 是 否 是 是 是 Name 姓名 VARCHAR(20) 否 否 ...

  5. mysql测试表格的年龄的语句是_MySQL查询语句练习题,测试基本够用了

    Sutdent表的定义 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 学号 INT(10) 是 否 是 是 是 Name 姓名 VARCHAR(20) 否 否 是 否 否 Sex 性 ...

  6. MySQL查学生年龄30到40之间_MYSQL查询练习 1

    -- 查询练习 1------------ CREATE TABLEstu ( sidCHAR(6), snameVARCHAR(50), ageINT, genderVARCHAR(50) );IN ...

  7. JavaScript获取一周前,一个月前日期

    getDay(day) {var today = new Date();var targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * ...

  8. 一年的第多少周+一个月的第多少天+一周的第多少天

    package cn.mybatis.dao.impl;import org.junit.Test;import java.text.ParseException; import java.text. ...

  9. mysql 查询当前时间一个月以内的数据

    在项目开发过程中,需要定期维护结束一个月以内的数据,下面介绍查询方式. SELECT id,title,endtime from classroom where years = 2022 and da ...

最新文章

  1. 2021年大数据Flink(四十五):​​​​​​扩展阅读 双流Join
  2. 怎样训练左右手协调_2019中考体育训练计划
  3. 图灵出品的人气O'Reilly动物书,你更钟意哪本?
  4. 计算机仿真和vr的区别,AR对比VR有何不同?你能分清楚他们的区别么
  5. Java多线程之线程封闭(三)
  6. ghelper怎么在手机上用_当长时间不用手机玩《崩坏3》、《战双》
  7. 僵尸进程的产生,危害和解决方案
  8. java继承和接口连接怎么用_继承与接口的使用
  9. 『电脑技巧』破解Win7/Win8登录密码
  10. pycharm下载安装opencv
  11. 软件项目管理资料题目
  12. java jtable 单元格合并_JTable单元格合并AAA
  13. Ubuntu安装搜狗输入法后修改默认英文输入状态的方法
  14. 整理iOS 错误警告
  15. sql server 数据库正在使用该文件的解决办法
  16. Gerrit安装及使用Nginx反向代理
  17. nyist 1204 魔法少女
  18. 【Unity3D】UGUI之Toggle
  19. 时间序列预测分析(2)How to Develop a Skillful Machine Learning Time Series Forecasting Model
  20. 软件测试:保障软件质量的关键性关口——记中国工商银行软件开发中心北京研发_manok_新浪博客...

热门文章

  1. 《人性的弱点》之对待抱怨地安全方式
  2. 中秋节花好月圆PPT模板-优页文档
  3. 惠普HP LaserJet Pro M501n 打印机驱动
  4. BLAST+中makeblastdb参数详解
  5. 值得信赖的全球投资者法律顾问ROSEN提醒Brookdale Senior Living, Inc.投资者注意BKD证券集体诉讼的重要截止日期
  6. swiper实现匀速无缝滚动
  7. 北斗通信模块 北斗gps模块 北斗通信终端DTU
  8. 关于bootstrap-inputfile初始化加载图片,修改图片重新上传文件的坑
  9. 微信商城的机遇wemall
  10. 博客园如何美化页面 2020最新!!