
select * from Biz_ExamCollection where collectionType = 5 AND date_format(createDTM,'%Y-%m-%d') <= date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m-%d')
MySQL查询指定时间的数据:
#获取当月数据
SELECT * FROM user_event WHERE DATE_FORMAT(create_time,'%Y-%m') = DATE_FORMAT(NOW(),'%Y-%m')
#获取3月份数据
SELECT * FROM user_event WHERE DATE_FORMAT(create_time,'%Y-%m') = DATE_FORMAT('2016-03-01','%Y-%m')
#获取三月份数据
SELECT * FROM user_event WHERE YEAR(create_time)='2016' AND MONTH(create_time)='3'
#获取本周数据
SELECT * FROM user_event WHERE YEARWEEK(DATE_FORMAT(create_time,'%Y-%m-%d')) = YEARWEEK(NOW())
#查询上周的数据
SELECT * FROM user_event WHERE YEARWEEK(DATE_FORMAT(create_time,'%Y-%m-%d')) = YEARWEEK(NOW())-1
#查询距离当前现在6个月的数据
SELECT * FROM user_event WHERE create_time BETWEEN DATE_SUB(NOW(),interval 6 month) and NOW()
#查询上个月的数据
SELECT * FROM user_event WHERE DATE_FORMAT(create_time,'%Y-%m')=DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH),'%Y-%m')
扩展资料
MYSQL基础知识:
数据库增删查改
创建数据库:语法:create database 数据库 [character 字符集 collate 校对规则]
查看数据库:
查看所有数据库:show databases
查看某个数据库:show create database 数据库名;
修改数据库:语法:alter database 数据库名 character 字符集 collate 校对规则
删除数据库:语法:drop database 数据库名;
切换数据库:use 数据库名;
查看当前使用数据库:select database()
数据库表 *** 作
创建表语法:
create table 表名 (
字段名 类型(长度) 约束,
字段名 类型(长度) 约束,
字段名 类型(长度) 约束
)
你的数据库设置有问题,年和月不应该分开统计,而应该用一列DateTime来记录,这样只要判断DateTime<=查询时间就可以了至于年份和月份的判断,则是在程序获取到DateTime后对字符串进行判断
你这样的后果一般情况下出现的,要么只查询到本年的6月以前,要么查询到所有年份的6月以前
比如查询08年6月以前,出现的情况可能显示 08年6月前,07年6月前,而07年6月后则没有显示
1、打开plsql,连接上oracle数据库,使用sql语句创建一张测试表。
2、使用sql语句插入3行测试数据到上一步创建的测试表中,日期栏位使用系统当前时间插入。
3、执行完sql之后,记得点击提交按钮,提交更改到数据库保存,否则,数据不会真正存储到数据库中。
4、提交完之后,查询刚刚插入的数据,select * from TestDate。
5、修改第一行Updatedate栏位的值,此时直接拼接日期格式的字符串更新,oracle是无法执行的。
6、修改第一行Updatedate栏位的值,将字符串的日期转换为日期类型,之后再修改,就可以更新了。
7、修改第一行Updatedate栏位的值,使用当前日期减去2天,直接减2即可。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)