mysql分別獲取已有資料date中的年月日

2021-08-19 23:39:45 字數 3650 閱讀 1527

mysql資料庫,test表中有一欄位date,型別為date,已有資料,如何分別獲取其中的年、月、日?不是獲得當前日期哦!

分別用year,month,day函式,例如

mysql> select * from test;

+------------+

| date |

+------------+

| 2011-01-19 |

| 2011-01-19 |

| 2010-06-01 |

| 2010-06-10 |

| 2010-07-10 |

+------------+

年mysql> select year(date) from test;

+------------+

| year(date) |

+------------+

| 2011 |

| 2011 |

| 2010 |

| 2010 |

| 2010 |

+------------+

月:mysql> select month(date) from test ;

+-------------+

| month(date) |

+-------------+

| 1 |

| 1 |

| 6 |

| 6 |

| 7 |

+-------------+

日:mysql> select day(date) from test;

+-----------+

| day(date) |

+-----------+

| 19 |

| 19 |

| 1 |

| 10 |

| 10 |

+-----------+day函式,例如

mysql> select * from test;

+------------+

| date |

+------------+

| 2011-01-19 |

| 2011-01-19 |

| 2010-06-01 |

| 2010-06-10 |

| 2010-07-10 |

+------------+

年mysql> select year(date) from test;

+------------+

| year(date) |

+------------+

| 2011 |

| 2011 |

| 2010 |

| 2010 |

| 2010 |

+------------+

月:mysql> select month(date) from test ;

+-------------+

| month(date) |

+-------------+

| 1 |

| 1 |

| 6 |

| 6 |

| 7 |

+-------------+

日:mysql> select day(date) from test;

+-----------+

| day(date) |

+-----------+

| 19 |

| 19 |

| 1 |

| 10 |

| 10 |

+-----------+

另外感謝另一位博主的分享:

記錄乙個mysql按日期分組統計的查詢

select

date_format

(deteline

,"%y-%m-%d %h"),

count(*

)from

test

group by date_format( deteline, "%y-%m-%d %h" ) 

查詢某天:

deteline, "%y-%m-%d"

某時:deteline, "%y-%m-%d %h"

依次類推。

其實就是對dateline進行處理,然後再對處理後的資料分組

附:mysql group by 原理

**

mysql計算兩個日期時間的差函式:

mysql計算兩個日期時間的差函式:

第一種:timestampdiff函式,需要傳入三個引數,第乙個是比較的型別,可以比較frac_second、second、 minute、 hour、 day、 week、 month、 quarter或 year幾種型別,第二個和第三個引數是待比較的兩個時間,比較是後乙個時間減前乙個時間,具體用法如下:?

selecttimestampdiff(day,'2012-10-01','2013-01-13');

返回結果是104,這裡比較的是兩個時間的天數差; ?

selecttimestampdiff(month,'2012-10-01','2013-01-13');

這裡比較的是兩個時間的月份,返回的結果是3;

第二種方法: datediff函式,就傳入兩個日期函式,比較的day天數,第乙個引數減去第二個引數的天數值,具體用法如下:?

selectdatediff('2013-01-13','2012-10-01');

返回的結果也是104。

另外其它的日期函式,

now()函式返回的是當前時間的年月日時分秒,如:2008-12-29 16:25:46

curdate()函式返回的是年月日資訊: 如:2008-12-29

curtime()函式返回的是當前時間的時分秒資訊,如:16:25:46

另外,如果我們想對乙個包含年月日時分秒日期格式化成年月日日期,可以使用date(time)函式,如

date(now()) 返回的是2008-12-29

NumPy 基於已有資料建立陣列

numpy 介紹 numpy 安裝 numpy ndarray numpy 資料型別 numpy 陣列建立 numpy 基於已有資料建立陣列 numpy 基於數值區間建立陣列 numpy 陣列切片 numpy 廣播 numpy 陣列迭代 numpy 位運算 numpy 字串函式 numpy 數學函式...

MySQL對已有資料的表進行分割槽表

1 可以使用alter table來進行更改表為分割槽表,這個操作會建立乙個分割槽表,然後自動進行資料copy然後刪除原表。alter table tbl rtdata partition by range month fld date partition p apr values less tha...

掛載已有資料的硬碟到Centos下

1 將資料硬碟直接掛在現有系統上 sata硬碟 2 df是找不到的哈 3 sbin fdisk l 可以列出所有的分割槽,包括沒有掛上的分割槽和usb裝置.我一般用這個來查詢需 要掛載的分割槽的位置,比如掛上u盤 disk dev sdb doesn t contain a valid partit...