zoukankan      html  css  js  c++  java
  • MySQL语句查询近年、月、日、小时的数据

    数据库表结构如图:

    表数据如下:

    #近多少(7)天的数据(按日来算,不算小时分)
    #SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)
    SELECT * FROM `test` WHERE DATE_SUB(CURDATE(), INTERVAL 3 DAY) <= DATE(ntime)
    
    #本月数据
    #SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
    SELECT * FROM `test` WHERE DATE_FORMAT( ntime, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
    
    
    #当天的数据
    #SELECT * FROM 表名 WHERE TO_DAYS(时间字段名) = TO_DAYS(NOW())
    SELECT * FROM test WHERE TO_DAYS(ntime) = TO_DAYS(NOW())
    
    
    #查询几(十)小时前数据
    #SELECT * FROM 表名 WHERE 时间字段名>DATE_ADD(NOW(),INTERVAL-10 HOUR)
    SELECT * FROM test WHERE nTime>DATE_ADD(NOW(),INTERVAL-10 HOUR)
    
    #查询上几(二)月数据,0代表本季度,1代表上一季度
    #SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( 时间字段名, '%Y%m' ) ) =2
    SELECT * FROM `test` WHERE PERIOD_DIFF( DATE_FORMAT( NOW( ) , '%Y%m' ) , DATE_FORMAT( ntime, '%Y%m' ) ) =0
    
    #查询上(几)季度数据`waterregion``log_watermeter`,0代表本季度,1代表上一季度
    #SELECT * FROM 表名 WHERE QUARTER(时间字段名)=QUARTER(DATE_SUB(NOW(),INTERVAL 1 QUARTER))
    SELECT * FROM `test` WHERE QUARTER(ntime)=QUARTER(DATE_SUB(NOW(),INTERVAL 0 QUARTER))
    
    #查询上(几)年度数据,0代表本年度,1代表上一年度
    #SELECT * FROM 表名 WHERE YEAR(时间字段名)=YEAR(DATE_SUB(NOW(),INTERVAL 1 YEAR))
    SELECT * FROM `test` WHERE YEAR(ntime)=YEAR(DATE_SUB(NOW(),INTERVAL 2 YEAR))
    
    #返回 date 是一年中的第几天,范围为 1366
    #DAYOFYEAR(date)
    SELECT DAYOFYEAR('2019-03-25 10:45:03')
    
    
    
    
    #返回 date 的年份,范围为 10009999
    #YEAR(date)
    SELECT YEAR('2019-03-25 10:45:03')
    
    #返回 date 中的月份,范围为 112
    #MONTH(date)
    SELECT MONTH('2019-03-25 10:45:03')
    
    #返回 date 是一月中的第几天,范围为 131
    #DAYOFMONTH(date) 
    SELECT DAYOFMONTH('2019-03-25 10:45:03')
    
    #返回 time 的小时值,范围为 023: 
    #HOUR(time) 
    SELECT HOUR('2019-03-25 10:45:03'); 
    
    #返回 time 的分钟值,范围为 059:
    #MINUTE(time) 
    SELECT MINUTE('2019-03-25 10:45:03'); 
    
    #返回 time 的秒值,范围为 059:
    #SECOND(time)  
    SELECT SECOND('2019-03-25 10:45:03'); 
  • 相关阅读:
    Codeforces Round #246 (Div. 2) —B. Football Kit
    expected expression __bridge
    ACM-百度之星资格赛之Energy Conversion——hdu4823
    xml解析-jaxp之dom解析
    NTP原理初步与配置
    Android开发学习之TabView选项卡具体解释 -- 基于Android4.4
    Apache轻量级性能測试工具--ab
    BAT的云
    03001_数据库
    ASP.NET调用dos命令获取交换机流量
  • 原文地址:https://www.cnblogs.com/Moming0/p/10593879.html
Copyright © 2011-2022 走看看