mysql日期查询操作

今天
select * from 表名 where to_days(时间字段名) = to_days(now());
昨天
Select * FROM 表名 Where TO_DAYS( NOW( ) ) – TO_DAYS( 时间字段名) <= 1
7天前 如果是7天后就是DATE_ADD函数
Select * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)
近30天前
Select * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名)
本月
Select * FROM 表名 Where DATE_FORMAT( 时间字段名, ‘%Y%m’ ) = DATE_FORMAT( CURDATE( ) , ‘%Y%m’ )
上一月
Select * FROM 表名 Where PERIOD_DIFF( date_format( now( ) , ‘%Y%m’ ) , date_format( 时间字段名, ‘%Y%m’ ) ) =1
//时间转成年月日时分秒
select date_format(now(),'%Y%m%d%H%i%S')
//时间转成年月日
select date_format(now(),'%Y%m%d')
//去年此时
select DATE_ADD(now(), Interval -1 year)
//上月此时
select DATE_ADD(now(), Interval -1 month)
//昨天此时
select DATE_ADD(now(), Interval -1 day)
//一小时前
select DATE_ADD(now(), Interval -1 hour)
//一分钟前
select DATE_ADD(now(), Interval -1 minute)
//一秒钟前
select DATE_ADD(now(), Interval -1 second)
//昨天(年月日)
select date_format(DATE_ADD(now(), Interval 1 day),'%Y%m%d')
//上个月第一天和最后一天
select date_sub(date_sub(date_format(now(),'%Y%m%d'),interval extract( day from now())-1 day),interval 1 month);
select date_sub(date_sub(date_format(now(),'%Y%m%d'),interval extract(day from now()) day),interval 0 month);
  
//某个字符串
select date_format(DATE_ADD('20090605123020', Interval 20 minute),'%Y%m%d')
//第几周
select weekofyear( now() )
select weekofyear('20090606')
在mysql中,会把'20090707123050'和'20090707'格式的字符串作为date类型转换。
 
在mysql中,没有类似oracle的to_char(num,format)函数,所以涉及到数字前面补0的情况需要特殊处理。
如select left(concat('00'),@num),3)就会显示三位数字的字符串, @num=1时显示001,为123是显示123。
CONCAT(YEAR(a.createtime),LEFT(CONCAT('0',WEEKOFYEAR(a.createtime)),2))
还有FROM_UNIXTIME 这个可以数字转日期
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBC可以通过使用SQL语句来实现对MySQL数据库的日期查询操作。下面是一个示例代码,演示了如何使用JDBC查询MySQL数据库中的日期数据: ```java import java.sql.*; public class JdbcExample { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 1. 注册JDBC驱动 Class.forName("com.mysql.jdbc.Driver"); // 2. 打开连接 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password"); // 3. 执行查询 stmt = conn.createStatement(); String sql = "SELECT * FROM mytable WHERE date_column = '2021-01-01'"; rs = stmt.executeQuery(sql); // 4. 处理结果集 while (rs.next()) { // 处理每一行数据 int id = rs.getInt("id"); String name = rs.getString("name"); Date date = rs.getDate("date_column"); System.out.println("ID: " + id + ", Name: " + name + ", Date: " + date); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { // 5. 关闭连接 try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 请注意,上述代码中的`"jdbc:mysql://localhost:3306/mydatabase"`是连接MySQL数据库的URL,`"username"`和`"password"`是数据库的用户名和密码,`"mytable"`是要查询的表名,`"date_column"`是日期列的列名。你需要根据你的实际情况进行相应的修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值