mysql怎么根据mysql数据库添加字段的时间字段查询

博客分类:
查询一天:
select * from table where to_days(column_time) = to_days(now());
select * from table where date(column_time) = curdate();
查询一周:
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(’’);
WEEKDAY(date)
返回 date 的星期索引(0 = Monday, 1 = Tuesday, ... 6 = Sunday):
mysql& SELECT WEEKDAY(’ 22:23:00’);
mysql& SELECT WEEKDAY(’’);
DAYOFMONTH(date)
返回 date 是一月中的第几天,范围为 1 到 31:
mysql& SELECT DAYOFMONTH(’’);
DAYOFYEAR(date)
返回 date 是一年中的第几天,范围为 1 到 366:
mysql& SELECT DAYOFYEAR(’’);
MONTH(date)
返回 date 中的月份,范围为 1 到 12:
mysql& SELECT MONTH(’’);
DAYNAME(date)
返回 date 的星期名:
mysql& SELECT DAYNAME("");
-& ’Thursday’
MONTHNAME(date)
返回 date 的月份名:
mysql& SELECT MONTHNAME("");
-& ’February’
QUARTER(date)
返回 date 在一年中的季度,范围为 1 到 4:
mysql& SELECT QUARTER(’98-04-01’);
WEEK(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(’’);
mysql& SELECT WEEK(’’,0);
mysql& SELECT WEEK(’’,1);
mysql& SELECT WEEK(’’,1);
注意,在版本 4.0 中,WEEK(#,0) 被更改为匹配 USA 历法。 注意,如果一周是上一年的最后一周,当你没有使用 2 或 3 做为可选参数时,MySQL 将返回 0:
mysql& SELECT YEAR(’’), WEEK(’’,0);
-& 2000, 0
mysql& SELECT WEEK(’’,2);
你可能会争辩说,当给定的日期值实际上是 1999 年的第 52 周的一部分时,MySQL 对 WEEK() 函数应该返回 52。我们决定返回 0 ,是因为我们希望该函数返回“在指定年份中是第几周”。当与其它的提取日期值中的月日值的函数结合使用时,这使得 WEEK() 函数的用法可靠。 如果你更希望能得到恰当的年-周值,那么你应该使用参数 2 或 3 做为可选参数,或者使用函数 YEARWEEK() :
mysql& SELECT YEARWEEK(’’);
mysql& SELECT MID(YEARWEEK(’’),5,2);
YEAR(date)
返回 date 的年份,范围为 1000 到 9999:
mysql& SELECT YEAR(’98-02-03’);
YEARWEEK(date)
YEARWEEK(date,first)
返回一个日期值是的哪一年的哪一周。第二个参数的形式与作用完全与 WEEK() 的第二个参数一致。注意,对于给定的日期参数是一年的第一周或最后一周的,返回的年份值可能与日期参数给出的年份不一致:
mysql& SELECT YEARWEEK(’’);
注意,对于可选参数 0 或 1,周值的返回值不同于 WEEK() 函数所返回值(0), WEEK() 根据给定的年语境返回周值。
HOUR(time)
返回 time 的小时值,范围为 0 到 23:
mysql& SELECT HOUR(’10:05:03’);
MINUTE(time)
返回 time 的分钟值,范围为 0 到 59:
mysql& SELECT MINUTE(’98-02-03 10:05:03’);
SECOND(time)
返回 time 的秒值,范围为 0 到 59:
mysql& SELECT SECOND(’10:05:03’);
PERIOD_ADD(P,N)
增加 N 个月到时期 P(格式为 YYMM 或 YYYYMM)中。以 YYYYMM 格式返回值。 注意,期间参数 P 不是 一个日期值:
mysql& SELECT PERIOD_ADD(9801,2);
PERIOD_DIFF(P1,P2)
返回时期 P1 和 P2 之间的月数。P1 和 P2 应该以 YYMM 或 YYYYMM 指定。 注意,时期参数 P1 和 P2 不是 日期值:
mysql& SELECT PERIOD_DIFF();
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 是一个关键词,它标志着表达式以何格式被解释。
浏览: 213963 次
来自: 深圳
好像没有看到建索引的语句,主键的话,只能为id,扩展性不好。我 ...
感谢,已修复!
mdzwmyy 写道getResponseEnumByCode ...
getResponseEnumByCode方法中,传入的是in ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'49989人阅读
MySQL(33)
SQL语句如何精准查找某一时间段的数据
& & & 在项目开发过程中,自己需要查询出一定时间段内的交易。故需要在sql查询语句中加入日期时间要素,sql语句如何实现?
& & & SELECT&*&FROM&lmapp.lm_bill&where&tx_time&Between&''&And&'';
& & & 仔细研究还是能够发现一些细节性的问题的。
& & & SQL语句
& & & SELECT&*&FROM&lmapp.lm_bill&where&merch_uid='S'&AND&tx_time&Between&''&AND&'&24:00:0';
& & & 查询结果
& & &SQL语句
& & &SELECT&*&FROM&lmapp.lm_bill&where&merch_uid='S'&AND&tx_time&Between&'&0:00:0'&AND&'&24:00:0';
& & &查询结果
& & &SQL语句
& & &SELECT&*&FROM&lmapp.lm_bill&where&merch_uid='S'&AND&tx_time&Between&''&AND&'';
& & &查询结果
& & &通过对比,可以清楚的发现以上3种sql语句所对应的查询结果均不相同。
& & &若自己想只以日期为查询条件而忽略时间,则需要对sql语句做进一步的处理操作。
& & &数据库中数据存储情况:
& & &由此可见SQL语句为满足条件的查询语句。
& & &参考文献:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
积分:57599
积分:57599
排名:第51名
原创:470篇
转载:39篇
评论:268条
文章:19篇
阅读:811798
文章:57篇
阅读:2140322
文章:19篇
阅读:831301
文章:23篇
阅读:993972
文章:20篇
阅读:1007269
文章:25篇
阅读:1233109
文章:28篇
阅读:1405253
文章:66篇
阅读:3096904
文章:44篇
阅读:2064741
文章:41篇
阅读:2068327
(1)(3)(1)(7)(27)(40)(9)(19)(19)(22)(18)(28)(17)(31)(19)(13)(7)(16)(4)(28)(29)(31)(11)(14)(21)(26)(6)(21)(22)(1)
热 爱 生 命
我不去想是否能够成功
  既然选择了远方
  便只顾风雨兼程
  我不去想能否赢得爱情
  既然钟情于玫瑰
  就勇敢地吐露真诚
  我不去想身后会不会袭来寒风冷雨
  既然目标是地平线
  留给世界的只能是背影
  我不去想未来是平坦还是泥泞
  只要热爱生命
  一切都在意料之中提供主流cms教程
提供数据库教程和设计
提供各种常见网页js代码
提供常用的JS特效代码及在线演示
提供jQuery插件教程及插件下载
提供服务器常见问题及教程
提供站长技术、站长资讯等内容
提供常用开发手册和开发工具
您现在的位置:& >
mysql数据库要按当天、昨天、前七日、近三十天、季度、年查询
导读:今天花了些时间整理了下MySQL中分别查找当天、昨天、近一周、近一个月等等时间段数据的代码1、查询今天数据的语句select * frim
今天花了些时间整理了下MySQL中分别查找当天、昨天、近一周、近一个月等等时间段数据的代码
1、查询今天数据的语句
select * frim
where to_days(时间字段名)==to_days(now());
select now();//获得当前时间
格式: 23:21:33
select curdate();//获得当前时间
select curtime();//获得当前时间
格式:23:19:43
2、查询昨天数据的语句
select * from 表名 where to_days(now())-to_days(时间字段名)=1;
3、查询七天语句
select * from 表名 where
date_sub(curdate(),interval 7 day)&=date(时间字段名);
select * from 表名 where
时间字段名&=date_sub(curdate(),interval 7 day);
4、查询近一个月的语句
select * from 表名 where
date_sub(curdate(),interval 1 month)&=date(时间字段名);
或者 select * from 表名 where
时间字段&=date_sub(curdate(),interval 1 month);
5、查询本季度数据
select * from 表名 where QUARTER(时间字段名)=QUARTER(now());
QUARTER(date);//返回的一年日期,取值范围为1至4季度。
6、查询上季度数据
select * from 表名 where
QUARTER(时间字段名)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));
6、查询本年的数据
select * from 表名 where YEAR(时间字段名)=YEAR(NOW());
7、查询去年数据
select * from 表名 where
year(时间字段名)=year(date_sub(now(),interval 1 year));
8、查询当前这一周的数据
SELECT name,时间字段名 FROM 表名 WHERE
YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now());
9、查询上周的数据
SELECT name,时间字段名 FROM 表名 WHERE
YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now())-1;
10、查询当前月份的数据
select name,时间字段名 from 表名
date_format(submittime,'%Y-%m')=date_format(now(),'%Y-%m')
11、查询上个月的数据
select name,时间字段名 from 表名
date_format(时间字段名,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m');
DATE_FORMAT();//函数用于以不同的格式显示日期/时间数据。
12、MySQL中日期时间函数大全
DAYOFWEEK(date)
  返回日期date是星期几(1=星期天,2=星期一,&&7=星期六,ODBC标准)
      mysql& select DAYOFWEEK('');
WEEKDAY(date)
  返回日期date是星期几(0=星期一,1=星期二,&&6= 星期天)
      mysql& select WEEKDAY(' 22:23:00');
      mysql& select WEEKDAY('');
DAYOFMONTH(date)
  返回date是一月中的第几日(在1到31范围内)
      mysql& select DAYOFMONTH('');
DAYOFYEAR(date)
  返回date是一年中的第几日(在1到366范围内)
      mysql& select DAYOFYEAR('');
MONTH(date)
  返回date中的月份数值
      mysql& select MONTH('');
转载请注明(B5教程网)原文链接:
网友评论:[已解决]如何查询数据表按某字段相同只调用一条 按时间排序
帝国cms - 安全、强大、稳定、灵活
用户头衔:秀才
精华贴&&&:0
发贴数&&&:62
经验值&&&:339
注册时间:
【】&&&[第&1&楼]
[已解决]如何查询数据表按某字段相同只调用一条 按时间排序
如何查询一个数据表中 查一个字段的调用,这个字段有相同的只调用最新的一条,不同的继续调用下一条。同一个字段data里有不同的值,我想用按data里查,data里相同的数据只调用一条,之后在调用下一个data不同的数据,之后按时间time排序。不知道这样的mysql语句该怎么写。大概意思就下面的样子*------------------------*|data& &&&|& &&&time& &&&||&&1& && &|& &&& ||&&1& && &|& &&& ||&&1& && &|& &&& ||&&1& && &|& &&& | |&&2& && &|& &&& ||&&2& && &|& &&& ||&&3& && &|& &&& ||&&3& && &|& &&& ||&&4& && &|& &&& |*------------------------*调用之后的-----------------------1& && && &&&2& && && &&&3& && && &&&4& && && &&&-----------------------感谢pingpong的解答,让我明白了大概的方向。这个语句我是想用来做最新更新来做的,所以需要的是发布数据中同类最新的数据。我把解决过程和贴出来,诚如pingpong所说,需要用group by 这个语句.最开始想当然写出是MYSQL语句是select * from test group by data order by time limit 10但输出的结果不是我想要的效果 这是对mysql 语句理解片面,对group by 不够深入了解之后发现原因是msyql已经的执行顺序是from test&&where group by data order by time&&order by 拿到的结果已经是group by 分完组的数据。即使用order也是在分组后的数据中排序之后这一天一直在查关于GROUP BY的排序问题。。找到了两个解决方法。 一个group_concat() 这个不太了解也没用到这个方法,另外一个并且使用的方法是子查询……查询语句select * from ( select * from test order by time desc) as name group by data order by time desc limit 10之后用到的是万能标签里 [ecmsinfo]'select * from ( select * from phome_ecms_news order by newstime desc) as name group by data order by newstime desc limit 3',3,32,0,24,48,0[/ecmsinfo]因为这个标签涉及到多表联动,所以用的不是灵动。。。个人感觉灵动里再嵌套太过麻烦。最后的效果就是这样的。& & data3&&& & data1& &&&& & data2& &
[该贴被修改 3 次,最后修改时间
02:38:57 ]
纠结,总是很蛋疼。。
已设置保密
用户头衔:秀才
精华贴&&&:0
发贴数&&&:62
经验值&&&:339
注册时间:
【】&&&[第&2&楼]
求解答啊。。。
纠结,总是很蛋疼。。
已设置保密
用户头衔:秀才
精华贴&&&:0
发贴数&&&:62
经验值&&&:339
注册时间:
【】&&&[第&3&楼]
纠结,总是很蛋疼。。
已设置保密
用户头衔:举人
精华贴&&&:0
发贴数&&&:206
经验值&&&:607
注册时间:
【】&&&[第&4&楼]
没明白 楼主说的
已设置保密
用户头衔:秀才
精华贴&&&:0
发贴数&&&:62
经验值&&&:339
注册时间:
【】&&&[第&5&楼]
额&&就是按time时间排序。。。。之后data里的数据有一样的也有不一样的&&但是data一样的我只要调出最新的一条。。其他的不调用。
纠结,总是很蛋疼。。
已设置保密
用户头衔:探花
精华贴&&&:0
发贴数&&&:6827
经验值&&&:17933
注册时间:
【】&&&[第&6&楼]
group by date
[该贴被修改 2 次,最后修改时间
08:47:42 ]
已设置保密
用户头衔:书生
精华贴&&&:0
发贴数&&&:17
经验值&&&:107
注册时间:
【】&&&[第&7&楼]
我也碰到类似的问题了,哭 啊~!
已设置保密
使用EBB代码
使用smile代码
自动分析url
自动分析img
&&(按 Ctrl+Enter 直接提交)
Powered by:&&Version 2.2.1

我要回帖

更多关于 mysql数据库查找字段 的文章

 

随机推荐