1. 程式人生 > >十二、Mysql 日期處理

十二、Mysql 日期處理

1. 關於Mysql 中的日期處理

1.1 每一個數據庫處理日期的時候,採用的機制不同,日期處理機制都有一套自己的機制,
**實際開發中,一般使用日期型別使用日期字串來表示日期。**

2. mysql 中的日期處理

    str_to_date
    date_format

3. str_to_date

    3.1 將"日期字串"轉換為"日期型別"
            varchar -> date
    3.2 處理結果為Date型別

    3.3 函式的使用格式:
         str_to_date('日期字串', '日期格式')
    3.4 日期格式
        Java中的日期格式:
                yyyy MM dd HH mm ss SSS(毫秒)
        SimpleDateFormat sdt = new SimpleDateFromt('yyyy-MM-dd');
        Date date = sdf.parse("2017-04-08")

        Mysql中的日期格式:
            %Y
            %m
            %d
            %H
            %i

        Mysql中預設的日期格式: 
            %Y-%m-%d,如果where條件中日期格式的字串為'2017-04-08'這種形式的話, 
            mysql 會自動將其轉換成日期,然後進行對比

以下兩個sql 一樣

select * from emp where hiredate = '1981-12-03';
select * from emp where hiredate = str_to_date('1981-12-03', '%Y-%m-%d');

新增記錄的時候也是允許的

create table stu(
    -> id int(10),
    -> name varchar(32),
    -> birth date);

 insert into stu(id, name, birth) values( 1, 'zhangsan'
, '2017-04-08');
insert into stu(id, name, birth) values( 1, 'zhangsan', str_to_date('08-04-2017', '%m-%d-%Y'));

4. date_format

    4.1 作用
        將date轉換為特定格式的字串
    4.2 運算結果:
        varchar
    4.3 語法
        date_format(日期資料,'日期格式')

        Java中日期格式:
            SimpleDateFormat sdf = new SimpleDateFormat('yyyy-MM-dd HH:mm:ss');
            Date nowTime = new Date();
            String strTime = sdf.formate(nowTime);


        4.4 

以下兩種輸入一致,mysql自動將日期格式轉換為%Y-%m-%d 的字串了。

> select date_format(hiredate, '%Y-%m-%d') from emp;    
> select hiredate from emp;
        4.5 fomate函式,是對數字進行轉換的。
            比如千分位等等。。。