mysql查詢前一周的數據_mysql查詢當天的數據 - CSDN

2020-11-21 CSDN技術社區

mysql 昨天 一周前 一月前 一年前的數據 這裡主要用到了DATE_SUB,

參考如下

代碼如下:


SELECT * FROM yh_content
where inputtime>DATE_SUB(CURDATE(), INTERVAL 1 DAY)
where inputtime>DATE_SUB(CURDATE(), INTERVAL 1 WEEK)
where inputtime>DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
where inputtime>DATE_SUB(CURDATE(), INTERVAL 1 YEAR)

 

注意:如果資料庫中時間以UNIX時間戳的形式存放的話,在時間對比上需要更改為統一格式:

DATE_SUB()返回的是格式化後的時間:2014-05-17

需要用UNIX_TIMESTAMP()轉化為UNIX時間戳形式對比:

 

代碼如下:


where inputtime>UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY))
where inputtime>UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 WEEK))
where inputtime>UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))
where inputtime>UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))

 

詳細請查看MySql時間函數:DATE_SUB、DATE_ADD、UNIX_TIMESTAMP等函數的用法

mysql中獲取一天、一周、一月時間數據的各種sql語句寫法

今天抽時間整理了一篇mysql中與天、周、月有關的時間數據的sql語句的各種寫法,部分是收集資料,全部手工整理,自己學習的同時,分享給大家,並首先默認創建一個表、插入2條數據,便於部分數據的測試,其中部分名詞或函數進行了解釋說明。直入主題!

創建表:

 

代碼如下:


create table if not exists t
(
   id int,
   addTime datetime default '0000-00-00 00:00:00′
)

 

添加兩條初始數據:

insert t values(1, '2012-07-12 21:00:00′);
insert t values(2, '2012-07-22 21:00:00′);

一、當天或當日插入的數據:

1、傳統對比判斷:SELECT * FROM `t` WHERE DATE_FORMAT(addTime,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d')");
2、第一點的簡寫:SELECT * FROM `t` WHERE addTime >= date_format(NOW(),'%Y-%m-%d');
3、利用函數判斷:SELECT * FROM `t` WHERE DATEDIFF(addTime,NOW()) =0;//推薦此方法
4、利用時間戳判斷:SELECT * FROM `t` WHERE addTime BETWEEN (UNIX_TIMESTAMP(now()-86440)) AND now();
註:返回當天時間的mysql函數有CURDATE()、CURRENT_DATE()、CURRENT_DATE、NOW()幾種;其中NOW()獲取的日期格式為0000-00-00 00:00:00的時間;CURDATE()、CURRENT_DATE()、CURRENT_DATE是獲取日期格式為0000-00-00的時間,所以返回的時間無時分秒;

二、當月的相關數據寫法:

1、今天是當月的第幾天:SELECT DAYOFMONTH( NOW( ) );
2、獲取當月的第一天時間:SELECT DATA_SUB( NOW(), INTERVAL DAYOFMONTH(NOW()) – 1 DAY);
日期運算函數,句型:date_add(date,INTERVAL expr type)和date_sub(date,INTERVAL expr type)
date為一個datetime或date值,可當作起始時間,expr為一個表達式,用來指定增加或減少的時間間隔數目,可為一個字符串–若為負值,則在表達式前加個"-"符號。type為關鍵詞,它表示了表達式被解釋的方式,通常用年(year)、月(month)、日(day)、周(week)等。
INTERVAL的用戶說明:

1、當函數使用時,即INTERVAL(),為比較函數,如:INTERVAL(10,1,3,5,7); 結果為4;
原理:10為被比較數,後面1,3,5,7為比較數,將後面四個依次與10比較,看後面數字組有多少個少於10,則返回其個數。前提是後面數字組為從小到大排列,否則返回結果0。
2、當關鍵詞使用時,表示為設置時間間隔,常用在date_add()與date_sub()函數裡,如:INTERVAL 1 DAY ,解釋為將時間間隔設置為1天。

弄清楚了上面幾個重要的日期運算函數,下面再來一個混合的日期運算。
3、上個月的第一天時間:SELECT DATE_SUB( DATE_SUB( NOW( ) , INTERVAL DAYOFMONTH( NOW( ) ) -1 DAY ) , INTERVAL 1 MONTH ); 是不是一目了然了!

三、當周的相關數據寫法:

1、獲取今天是一周第幾天或星期幾:SELECT WEEKDAY(now());返回的是數字:0為周一,6為周日
2、獲取本周的第一天日期:SELECT DATE_SUB(now(),INTERVAL WEEKDAY(now()) day);或SELECT DATE_ADD(now(),INTERVAL -WEEKDAY(now()) day);或 SELECT CURDATE( ) – WEEKDAY( CURDATE( ) );
3、再寫一個上周的第一天至現在的數據:(以表t為數據表)
SELECT * FROM `t` WHERE addTime >= date_format(date_sub(date_sub(now(), INTERVAL WEEKDAY(NOW()) DAY), INTERVAL 1 WEEK), 『%Y-%m-%d');是不是有些感覺了!

註:若你是以時間戳保存的時間欄位,那麼請用from_unixtime()函數轉換為時間格式,如:from_unixtime($timestamp)

四、Mysql中將日期轉為時間戳

前三點的方法,講的都是將日期轉為相應時間常量,並沒有提到時間戳與時間的轉換,這裡把它寫出來,

1、時間戳轉日期,方法是select from_unixtime(1336542121);
2、日期轉時間戳,方法是:select unix_timestamp('2013-04-08′);

 

oracle怎麼查詢某一個日期後的所有數據?

假設你的日期欄位是 create_time,表名叫test
select * from test where to_char(create_time, 'yyyy-mm-dd') >= '2015-01-01'

相關焦點

  • mysql 版本號解釋_mysql workbench查詢mysql版本號 - CSDN
    在mysql中,含有空值的列很難進行查詢優化,因為它們使得索引、索引的統計信息以及比較運算更加複雜。它對資料庫中數據的改變是持久的,即使資料庫發生故障也不應該對其有任何影響。什麼是髒讀?幻讀?不可重複讀?髒讀(Drity Read):某個事務已更新一份數據,另一個事務在此時讀取了同一份數據,由於某些原因,前一個RollBack了操作,則後一個事務所讀取的數據就會是不正確的。
  • mysql/mariadb資料庫在查詢結果中再次查詢篩選的操作方法
    今天是2020年4月9日,我跟大家分享一個二次操作mysql資料庫查詢結果的方法.我以資料庫 mariadb為例進行說明.因為它有個heidiSQL圖形管理工具,比較好操作.資料庫 mariadb為例進行說明.因為它有個heidiSQL圖形管理工具,比較好操作.
  • MySQL 數據校驗工具-愛可生|mysql|perl|伺服器|node01_網易訂閱
    概述  pt-table-checksum 是 Percona-Toolkit 的組件之一,用於檢測 MySQL 主、從庫的數據是否一致。其原理是在主庫執行基於 statement 的 SQL 語句來生成主庫數據塊的checksum,把相同的 SQL 語句傳遞到從庫執行,並在從庫上計算相同數據塊的 checksum,最後,比較主從庫上相同數據塊的 checksum 值,由此判斷主從數據是否一致。它能在非常大的表上工作的一個原因是,它把每個表分成行塊,並檢查每個塊與單個替換。選擇查詢。它改變塊的大小,使校驗和查詢在所需的時間內運行。
  • MySQL字符串截取 和 截取字符進行查詢
    通過mysql自帶的一些字符串截取函數,對數據進行處理,下面是我整理的字符串截取 和 截取字符進行查詢。substring_index("aaa_bbb_ccc","_",2) ,返回為 aaa_bbb;substring_index(substring_index("aaa_bbb_ccc","_",-2),"_",1) ,返回為 bbb;2.concat是連接幾個字符串 例子:concat(『m』,』y』,’s』,』q』,』l』); 返回:mysql
  • 一條查詢SQL在MySQL中是怎麼執行的
    Server層:包含連接器、查詢緩存、分析器、優化器、執行器等,涵蓋了MySQL的大部分核心服務功能,以及所有的內置函數,所有的跨存儲引擎的功能都在這一層實現,比如存儲過程、觸發器、視圖等,存儲引擎層:負責數據的存儲和提取,其架構模式是插件式的,支持InnoDB、MyISAM、Memory等多個存儲引擎。
  • mysql昨天的日期時間函數 - CSDN
    mysql時間日期內置函數–非常方便用於查詢今天、昨天、上周,本月,上月,年度查詢等,但是千萬要監控mysql語句的性能,適當加索引優化一下查詢速度哦今天select * from 表名 where to_days(時間欄位名) = to_days(now());
  • mysql查詢——統計每日新用戶數量
    下圖是一張網站用戶活動表(User_Activities),表中包含欄位UserId(用戶編號)、Activity(用戶活動,可取值login、orders、logout)、Date(活動日期),現需要編寫一個查詢語句,統計網站每日的新用戶數量,即統計每日登錄用戶中首次登錄網站的用戶數
  • mysql 矩陣類型專題及常見問題 - CSDN
    查詢數據mysql插入語句:insert into students(name,age) values('miku',18);import pymysql# 定義數據name = 'miku'age = 18db = pymysql.connect(host='
  • 如何向mysql導入數據
    一、導入.sql文件1.mysql命令導入數據基本語法:mysql -h伺服器地址 -u用戶名 -p 資料庫名< 要導入的資料庫文件路徑例:導入G:fields escaped by:指定轉義字符,默認'\'ignore n lines:忽視文件的前幾行(col_name, ):指定插入數據時表中列的順序,若省略,則按默認順序插入數據。
  • MySQL 8.0 正式版 8.0.11 發布:比 MySQL 5.7 快 2 倍
    窗口函數(Window Functions):從 MySQL 8.0 開始,新增了一個叫窗口函數的概念,它可以用來實現若干新的查詢方式。窗口函數與 SUM()、COUNT() 這種集合函數類似,但它不會將多行查詢結果合併為一行,而是將結果放回多行當中。即窗口函數不需要 GROUP BY。4.
  • MySQL 8.0 正式版 8.0.11 發布:比 MySQL 5.7 快 2 倍 - OS...
    窗口函數(Window Functions):從 MySQL 8.0 開始,新增了一個叫窗口函數的概念,它可以用來實現若干新的查詢方式。窗口函數與 SUM()、COUNT() 這種集合函數類似,但它不會將多行查詢結果合併為一行,而是將結果放回多行當中。即窗口函數不需要 GROUP BY。4.
  • python3.8操作(插入,刪除)mysql/MariaDB資料庫
    = mysql.connector.connect(host="localhost", # 資料庫主機地址user="root", # 資料庫用戶名passwd="root", # 資料庫密碼database="test1" #資料庫名)mycursor = mydb.cursor()a=0while True:time.sleep(1)try:# 查詢資料庫的表格table1mycursor.execute
  • 如何把Access的數據導入到Mysql中
    在Mysql資料庫中,一般有兩種方法來處理數據的導出:1. 使用select * from table_name into outfile 「file_name」; 2. 使用mysqldump實用程序 下面我們來舉例說明: 假設我們的資料庫中有一個庫為samp_db,一個表為samp_table。現在要把samp_table的數據導出。
  • python海量數據快速查詢的技巧
    在實際工作中,經常會遇到查詢的任務,比如根據某些rs號,檢索dbsnp資料庫,提取這些snp位點的信息,對於這樣的任務,最基本的操作方法是將資料庫的內容存為字典,然後檢索特定的key即可。對於小文件而言,這樣的操作編碼簡單,運行速度也比較滿意,但是對於大型資料庫而言,將資料庫存為字典這個動作是非常耗費時間的,而且每次運行代碼都要執行這樣的操作,導致效率大大降低。想要改善這一狀況,有以下兩種解決辦法1.
  • 一千行MySQL學習筆記
    使用 in 或 not in 完成查詢        exists 和 not exists 條件            如果子查詢返回數據,則返回1或0。常用於判斷條件。4,當被用於帶分區的表時,truncate 會保留分區/* 備份與還原 */ ---備份,將數據的結構與表內數據保存起來。利用 mysqldump 指令完成。-- 導出1. 導出一張表  mysqldump -u用戶名 -p密碼 庫名 表名 > 文件名(D:/a.sql)2.
  • 基於MySQL資料庫應用開發實現嵌入式數控系統的設計
    具體創建過程如下: % mysql –uroot mysql; //進入資料庫 mysql》 SET PASSWORD=PASSWORD(『lyw00001』); //為根用戶分配一個口令 mysql》 CREATE DATABASE work ; //創建work資料庫 mysql》 GRANT ALL ON work.* to lyw@localhost
  • Python連接MySQL資料庫方法介紹(超詳細!手把手項目案例操作)
    for i in data[:2]: # 列印輸出前2條數據print (i)cur.close() # 關閉遊標conn.close() # 關閉連接上述代碼中,實現了通過Python連接MySQL查詢所有的數據,並輸出前2條數據的功能。
  • 將mysql數據導入access資料庫
    mysql資料庫表sqltable 欄位id,name,sex,email access資料庫表accesstable id,name,sex,email ?
  • 如何在ubuntu20.04安裝MySQL並修改資料庫密碼
    sudo apt install mysql-client-core-83、再次輸入mysql命令,提示不能連接上mysql server,由提示可知mysql服務端沒有安裝;輸入命令sudo apt-get
  • MySQL8.0窗口函數做數據排名統計詳細教程
    MySQL8.0新增了窗口函數,大大的方便了做數據排名統計的人,很多朋友還不清楚怎麼用MySQL8.0做數據統計排名,下面就來為大家分享一篇心得文章。