Mysql的日期轉換成星期[某天對應周幾]


|——

應用中會有各種不同的需求,要靈活應對:比如拿到某一日期要知道是周幾

 

|——DAYOFWEEK(date) 【返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。這些索引值對應於ODBC標准。】

mysql> select DAYOFWEEK(CURRENT_TIMESTAMP());
+--------------------------------+
| DAYOFWEEK(CURRENT_TIMESTAMP()) |
+--------------------------------+
|                 3 |
+--------------------------------+
1 row in set

沒錯就是3 對應ODBC標准中找出對應 就是星期二;好坑。

寫了一函數轉換:

 

 

    private function _week($num)
    {
        $res = '';
        switch ($num) {
            case 1:
                $res = '星期天';
                break;
            case 2:
                $res = '星期一';
                break;
            case 3:
                $res = '星期二';
                break;
            case 4:
                $res = '星期三';
                break;
            case 5:
                $res = '星期四';
                break;
            case 6:
                $res = '星期五';
                break;
            case 7:
                $res = '星期六';
                break;
        }
        return $res;
    }

 

|——WEEKDAY(date)【返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。】

mysql> select WEEKDAY(CURRENT_TIMESTAMP());
+------------------------------+
| WEEKDAY(CURRENT_TIMESTAMP()) |
+------------------------------+
|                 1 |
+------------------------------+
1 row in set

怎么又是1了 好坑。

 

|——DAYOFMONTH(date) 【返回date的月份中日期,在1到31范圍內。】

mysql> select DAYOFMONTH('2008-08-08');
 
         +--------------------------+ 
        
| DAYOFMONTH('2008-08-08') |
+--------------------------+
|              8 |
+--------------------------+
1 row in set
 

|——DAYOFYEAR(date) 【返回date在一年中的日數, 在1到366范圍內。】

 
mysql> select DAYOFYEAR('2008-08-08');
+-------------------------+
| DAYOFYEAR('2008-08-08') |
+-------------------------+
| 221                     |
+-------------------------+
1 row in set
 
 

|——MONTH(date)【返回date的月份,范圍1到12。】

mysql> select MONTH('2008-08-08');
+---------------------+
| MONTH('2008-08-08') |
+---------------------+
| 8                   |
+---------------------+
1 row in set

 

|——DAYNAME(date)【返回date的星期名字。】

mysql> select DAYNAME("2008-08-08");
+-----------------------+
| DAYNAME("2008-08-08") |
+-----------------------+
| Friday                |
+-----------------------+
1 row in set

 

|——MONTHNAME(date)【返回date的月份名字。】

mysql> select MONTHNAME("2008-08-08");
+-------------------------+
| MONTHNAME("2008-08-08") |
+-------------------------+
| August                  |
+-------------------------+
1 row in set

 

|——QUARTER(date) 【返回date一年中的季度,范圍1到4。】

  mysql> select QUARTER("2008-08-08");
 
         +-----------------------+ 
        
| QUARTER("2008-08-08") |
+-----------------------+
| 3                     |
+-----------------------+
1 row in set

 

|——WEEK(date) | WEEK(date,first)

 

對於星期天是一周的第一天的地方,有一個單個參數,返回date的周數,范圍在0到52。2個參數形式WEEK()允許
你指定星期是否開始於星期天或星期一。如果第二個參數是0,星期從星期天開始,如果第二個參數是1,
從星期一開始。

mysql> select week('2008-08-08',1);
+----------------------+
| week('2008-08-08',1) |
+----------------------+
| 32                   |
+----------------------+
1 row in set

 

mysql> select week('2008-08-08',0);
+----------------------+
| week('2008-08-08',0) |
+----------------------+
| 31                   |
+----------------------+
1 row in set

 

|——YEAR(date)【返回date的年份,范圍在1000到9999。】

mysql> select year(now());
+-------------+
| year(now()) |
+-------------+
| 2014        |
+-------------+
1 row in set

 

 

|——CURRENT_DATE【以'YYYY-MM-DD'或YYYYMMDD格式返回今天日期值,取決於函數是在一個字符串還是數字上下文被使用。】

mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2014-04-15 |
+------------+
1 row in set  
 
mysql> select curdate() + 0;
+---------------+
| curdate() + 0 |
+---------------+
| 20140415      |
+---------------+
1 row in set

 

|——CURTIME()  | CURRENT_TIME 【以'HH:MM:SS'或HHMMSS格式返回當前時間值,取決於函數是在一個字符串還是在數字的上下文被使用。】

mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 15:11:00  |
+-----------+
1 row in set  
 
 
mysql> select current_time;
+--------------+
| current_time |
+--------------+
| 15:11:13     |
+--------------+
1 row in set

 

mysql> select current_time + 0;
+------------------+
| current_time + 0 |
+------------------+
| 151157.000000    |
+------------------+
1 row in set

 

|——  NOW()  == SYSDATE() == CURRENT_TIMESTAMP

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2014-04-15 15:12:58 |
+---------------------+
1 row in set
 
 
  mysql> select now() + 0;
+-----------------------+
| now() + 0             |
+-----------------------+
| 20140415151306.000000 |
+-----------------------+
1 row in set

 

 

參考:

http://www.corange.cn/archives/2008/06/1275.html  Mysql 日期轉換星期


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM