1. 程式人生 > >mysql資料庫的日期資料處理 date_format與str_to_date的使用細節

mysql資料庫的日期資料處理 date_format與str_to_date的使用細節

首先建立一個簡單的資料表,表名testDateFunction,表結構如下所示

+-------+---------+------+-----+---------+----------------+
| Field | Type    | Null | Key | Default | Extra          |
+-------+---------+------+-----+---------+----------------+
| id    | int(11) | NO   | PRI | NULL    | auto_increment |
| time  | date    | YES  |     | NULL    |                |
+-------+---------+------+-----+---------+----------------+
再向資料表中插入幾條測試資料,由於本文重點是記錄關於日期函式的用法,資料插入過程就不在贅述,表資料如下所示:
+----+------------+
| id | time       |
+----+------------+
|  1 | 2009-09-26 |
|  2 | 2017-01-03 |
|  3 | 2017-08-07 |
+----+------------+

一·將資料庫中的date資料轉換為我們想要的String型別

需要使用的函式是:date_format(date,format),其中,date是需要轉化的日期資料,format定義的是轉換格式。

例:

1.將日期資料按照 年-月-日 時:分:秒 的格式輸出

format格式:

年份

%Y   ----->年份,顯示4位,如2017;

%y   ----->年份,顯示2位,如2017;

select date_format(now(),'%Y');    --->  2017
select date_format(now(),'%y');    --->  17

月份

%m  ----->月份 阿拉伯數字顯示,佔兩位字元,01-12;

%M  ----->月份 英文全文顯示,January-December;

%b  ----->月份 英文縮略顯示,Jan-Dec;

%c  ----->月份 阿拉伯數字顯示,1-12;

select date_format(now(),'%Y-%m');    --->  2017-08select date_format(now(),'%Y-%M');    --->  2017-Augustselect date_format(now(),'%Y-%b');    --->  2017-Augselect date_format(now(),'%Y-%c');    --->  2017-8

%d ----->日   阿拉伯顯示:00-31        

%D----->日  帶有英文字尾:1st-31th     

%e----->日  阿拉伯顯示:1-31          

%j  ----->日  這一天在這個年份的序號:001-366   

select date_format(now(),'%Y-%m-%d');    --->  2017-08-07select date_format(now(),'%Y-%m-%D');    --->  2017-08-7thselect date_format(now(),'%Y-%m-%e');    --->  2017-08-7select date_format(now(),'%Y-%m-%d   %j');    --->  2017-08-07  219  ps:表示2017年8月7日是2017年的第219天

時、分、秒

%H ----> 時 顯示格式 :00-23           

%h----> 時 顯示格式 : 01-12        

%I  ----> 時 顯示格式 :01-12      

%k----> 時 顯示格式 :0-23      

%l  ----> 時 顯示格式 :1-12

select date_format(now(),'%Y-%m-%d  %H');    --->  2017-08-07  16  ps:下午4點
select date_format(now(),'%Y-%m-%d  %h');    --->  2017-08-07  04
select date_format(now(),'%Y-%m-%d  %I');    --->  2017-08-07  04
select date_format(now(),'%Y-%m-%d  %k');    --->  2017-08-07  16  ps:當小於10時,顯示為1-9,而不是01-09
select date_format(now(),'%Y-%m-%d  %l');    --->  2017-08-07  4  


分:   %i:00-59

select date_format(now(),'%Y-%m-%d  %H:%i');    --->  2017-08-07  16:47  ps:下午4點47分


 秒:   %S:00-59        %s:00-59

select date_format(now(),'%Y-%m-%d  %H:%i:%S');    --->  2017-08-07  16:47:53  ps:下午4點47分53秒
select date_format(now(),'%Y-%m-%d  %H:%i:%s');    --->  2017-08-07  16:47:53  ps:下午4點47分53秒

微秒 %f 

select date_format(now(),'%Y-%m-%d  %H:%i:%S %f');    --->   2017-08-07  16:54:22 000000 

12/24小時制 

AM/PM  ------->%pselect date_format(now(),'%Y-%m-%d  %H:%i:%S %p');    --->    2017-08-07  16:57:21 PM12小時制時間:%r:  select date_format(now(),'%Y-%m-%d  %r');    --->    2017-08-07 04:57:59 PM 24小時制時間: %T:  14:02:44select date_format(now(),'%Y-%m-%d  %T');    --->     2017-08-07  17:15:16

%W ---->  周的英文顯示      monday-sunday

%w  ---->  周的阿拉伯顯示 :0(星期日)-6(星期六)  

%a  ---->   周的英文縮略顯示:Mon-sun

select date_format(now(),'%Y-%m-%d  %H:%i:%s %W');    --->   2017-08-07  17:19:15 Mondayselect date_format(now(),'%Y-%m-%d  %H:%i:%s %w');    --->  2017-08-07  17:20:13 1  ps:1表示週一select date_format(now(),'%Y-%m-%d  %H:%i:%s %a');    --->   2017-08-07  17:19:15 Mon

二·將字串型別轉換為date型別

使用函式str_to_date (str,format),其中,format格式依然如同上述所示。

值得注意的是,str的格式需要和format的格式保持一致,例如 str_to_date('2017-08-07 16:56:12',‘%Y-%m-%d %H:%i:%s’),若是前後不一致則會報錯。不再贅述。

相關推薦

mysql資料庫日期資料處理 date_formatstr_to_date的使用細節

首先建立一個簡單的資料表,表名testDateFunction,表結構如下所示 +-------+---------+------+-----+---------+----------------+

MySQL必知必會》學習筆記(二)、MySQL資料庫資料的檢索搜尋

一、對檢索結果排序 1.1 簡單排序 在MySQL中使用ORDER BY子句對檢索出的資料進行排序,而且預設為遞增排序。若想以遞減方式排序,需要在排列資料後面加上DESC關鍵字。利用《MySQL必知必會》中的資料表,實驗如下: SELE

mysql資料庫,日期格式轉換及日期間的計算 date_format,date_sub

今天做了一個統計積分的功能,需要統計昨日,今日和本月的積分 想到優化sql解決問題 轉換日期格式 DATE_FORMAT(date,格式) 函式 本來想用to_date和to_char來轉換日期的格式,但是在mysql似乎沒有這兩個函式 date

27.logstash-output-mongodb實現Mysql到Mongodb資料同步(ES非關係型資料庫同步)

本文主要講解如何通過logstash-output-mongodb外掛實現Mysql與Mongodb資料的同步。源資料儲存在Mysql,目標資料庫為非關係型資料庫Mongodb。0、前提1)已經安裝好源資料庫:Mysql; 2)已經安裝好目的資料庫:Mongodb; 3)已經

MySQL資料庫 之 插入、更新刪除資料

一、插入資料 MySQL 中使用 insert 語句來向資料庫表中插入新的資料記錄。 ☆ 為表的所有欄位插入資料 insert into tb_name (col_list) values (value_list) 建立一個數據表 person

MIT-BIH資料庫ECG心電圖資料處理畫圖心率計算(附詳細註釋)

本文程式碼依據rddata.m檔案編寫,關於資料結構的格式、意義,我在理解後都寫在註釋裡了,有需要的朋友可以認真看一下。歡迎交流。本文處理的資料是MIT-BIH資料庫100.hea和100.dat檔案,利用的是matlab工具。%檔名稱 : ECG_Plot %實現功能

【oracle 處理日期資料】常見日期資料處理

獲得當前日期 sysdate() 為日期加上特定月份 add_months(end_date,1) 求日期所在月的最後一天 last_day() 計算兩個日期所差的月數 months_between() 計算日期之後的一週之內的日期 next_day()

阿里P8架構師談:MySQL資料庫的索引原理、慢SQL優化的5大原則

MySQL憑藉著出色的效能、低廉的成本、豐富的資源,已經成為絕大多數網際網路公司的首選關係型資料庫。雖然效能出色,但所謂“好馬配好鞍”,如何能夠更好的使用它,已經成為開發工程師的必修課,我們經常會從職位描述上看到諸如“精通MySQL”、“SQL語句優化”、“瞭解資料庫原理”等要求。 我們知道一般

scrapy框架 基於mysql資料庫儲存資料方法、案例

流程思路 將解析資料存到items物件 使用yield 將items交給管道檔案處理 在管道檔案pipelines編寫程式碼儲存到資料庫 在setting配置檔案開啟管道 案例 items中 按照格式定義欄位 import s

mysql資料庫資料約束

/*資料約束*/    CREATE TABLE user01 (    uid INT NOT NULL,/*非空約束*/   PRIMARY KEY  /*主鍵約束*/  AUTO_INCREMENT /*

使用binlog日誌恢復MySQL資料庫刪除資料的方法

binlog日誌簡介: binlog 就是binary log,二進位制日誌檔案,這個檔案記錄了MySQL所有的DDL和DML(除了資料查詢語句)語句,以事件形式記錄,還包含語句所執行的消耗的時間。 binlog日誌包括兩類檔案: 1)二進位制日誌索引檔案(檔名字尾為.index):用於

MySQL---當Java遇上MySQL⑧---資料庫資料、生成Excel檔案

玩轉資料庫元資料主要有兩個類:      *  java.sql.DatabaseMetaData 和 java.sql.ResultSetMetaData      *    DatabaseMetaData:可以獲得驅動資訊、所有資料庫名,所有表格名(檢視、儲存過程等)

Pandas日期資料處理:如何按日期篩選、顯示及統計資料

前言 pandas有著強大的日期資料處理功能,本期我們來了解下pandas處理日期資料的一些基本功能,主要包括以下三個方面: 按日期篩選資料 按日期顯示資料 按日期統計資料 執行環境為 windows系統,64位,python3.5。 1 讀取並整理資料 首先

mysql資料庫插入資料顯示Extracted SQL state class '22' from value '22001'解決辦法

Extracted SQL state class ‘22’ from value ‘22001’ 問題描述 最近在完成一個專案時,需要實現在網頁從excel匯入資料,然後儲存到資料庫中.在測試階段時發現執行沒有任何問題,但是實際部署過程中發現,使用者上傳exc

【MVC】.NET實踐(三)—對資料庫資料進行刪除修改

在主介面新增修改和刪除的超連結(Index.cshtml) <table id="tbList"> <tr> <th>id&l

VS2013使用MySQL資料庫資料集中如何填充帶引數的sql語句

本人在網上查詢一番後,發現均無法實現效果,之前的專案使用Oracle,sql傳參類似“......where id = :id”,然後突然想到直接tableAdapter裡面新建一個update查詢,不就知道使用MySQL資料庫時sql傳參了嘛。以上思路,下給例子:

mysql 連結,資料處理

** * Created by Administrator on 2018/1/28. */ object LogsAnalys { val driver = "com.mysql.jdbc.Driver" val url = "jdbc:mysql://ur

關於mysql資料庫匯入資料慢的解決方法

mysqldump匯入慢的解決方法 mysql匯出的SQL語句在匯入時有可能會非常非常慢,經歷過匯入僅45萬條記錄,竟用了近3個小時。在匯出時合理使用幾個引數,可以大大加快導 入的速度。 -e 使用包括幾個VALUES列表的多行INSERT語法; –max_al

批量向mysql資料庫匯入資料夾中的excl檔案(方法2)

前一篇是直接將excl檔案匯入到資料庫中,這次是現將excl檔案轉化成Dataframe格式的,然後直接匯入mysql資料庫(有現成函式哦) import numpy as np import pandas as pd import pymysql from sqlalchemy import

切記!pycharm向mysql資料庫新增資料過程

python 匯入包import requests   以爬取騰訊招聘網的招聘資訊為例:(完整程式碼) import requestsfrom lxml import etreeimport pymysqlheaders = {'user-agent': 'Mozilla/5.0 (Windows