ホームページ  >  記事  >  データベース  >  MySQL が日付関数を導入

MySQL が日付関数を導入

coldplay.xixi
coldplay.xixi転載
2021-03-02 09:11:292473ブラウズ

MySQL が日付関数を導入

日付関数の種類:

(1) 現在の日付を取得する関数と現在時刻を取得する関数
(2) 現在の日時を取得する関数
(3) UNIX タイムスタンプ関数
(4) UTC 日付を返す関数と UTC 時刻を返す関数
(5) 月を取得する関数month( date) および monthname(date)
(6) 関数 dayname(d)、dayofweek(d) および Weekday(d)
(7) 取得する関数 week(d) および dayofyear(d)週番号 )
(8) 日数を取得する関数 dayofyear(d) および dayofmonth(d)
(9) 年、四半期、時、分、秒を取得する関数。
(10) 日付の指定値を取得する関数 extract(日付から型)
(11) 時刻と秒を変換する関数
(12) 日付と時刻を計算する関数
(13)日付と時刻をフォーマットする関数

#(関連する無料学習の推奨事項:

mysql ビデオ チュートリアル )

(1) 現在の日付を取得する関数と現在時刻を取得する関数
1.curdate() と current_date()

[例] date 関数
を使用してシステムの現在の日付を取得します。SQL ステートメントは次のとおりです。

mysql> select curdate(),current_date(),curdate()+0;+------------+----------------+-------------+| curdate()  | current_date() | curdate()+0 |+------------+----------------+-------------+| 2019-08-18 | 2019-08-18     |    20190818 |+------------+----------------+-------------+1 row in set (0.00 sec)
    curdate () 0 は、現在の日付値を数値型に変換することを意味します。
2.curtime() と current_time()

[例] time 関数
を使用して現在のシステム時刻を取得する SQL 文は次のとおりです。 <pre class="brush:php;toolbar:false">mysql&gt; select curtime(),current_time(),curtime()+0;+-----------+----------------+-------------+| curtime() | current_time() | curtime()+0 |+-----------+----------------+-------------+| 17:08:07  | 17:08:07       |      170807 |+-----------+----------------+-------------+1 row in set (0.00 sec)</pre>

curtime() 0 は、現在の時刻値を数値型に変換することを意味します。
(2) 現在日時を取得する関数
current_timestamp()、localtime()、now()、sysdate(の4つの関数) 同様に、どちらも現在の日付と時刻の値を返します。
  • [例] date and time 関数を使用して現在のシステム時刻と日付を取得する SQL 文は次のとおりです:
mysql> select current_timestamp(),
    -> localtime(),
    -> now(),
    -> sysdate();+---------------------+---------------------+---------------------+---------------------+| current_timestamp() | localtime()         | now()               | sysdate()           |+---------------------+---------------------+---------------------+---------------------+| 2019-08-18 19:10:05 | 2019-08-18 19:10:05 | 2019-08-18 19:10:05 | 2019-08-18 19:10:05 |+---------------------+---------------------+---------------------+---------------------+1 row in set (0.05 sec)

(3)UNIX タイムスタンプ関数
unix_timestamp(date) をパラメータなしで呼び出すと、UNIX タイムスタンプ (GMT からの秒数、GMT はグリニッジ標準時 1970.1.1) を符号なし整数として返します。
  • Date には、日付文字列、日時文字列、タイムスタンプ、または現地時間の YY[YY]MMDD 形式の数値を指定できます。
  • 1.unix_timestamp(date)
[例] unix_timestamp 関数を使用してタイムスタンプを Unix 形式で返します。SQL 文は次のとおりです。 from_unixtime() 関数 unix タイムスタンプは共通形式の時刻に変換され、unix_timestamp(date) 関数の逆関数です。


2.from_unixtime(date)
    [例] from_unixtime 関数を使用して、UNIX タイムスタンプを共通形式の時刻に変換する SQL 文は次のとおりです。
  • (4 ) UTC 日付を返す関数と UTC 時間を返す関数。
1.UTC_DATE()

[例] utc_date() 関数を使用して、現在の UTC 日付値を返します SQL 文は次のとおりです。
[例] UTC_TIME() 関数を使用して、現在の UTC 時刻値を取得します SQL 文は次のとおりです:

mysql> select unix_timestamp(),unix_timestamp(now()),now();+------------------+-----------------------+---------------------+| unix_timestamp() | unix_timestamp(now()) | now()               |+------------------+-----------------------+---------------------+|       1566127316 |            1566127316 | 2019-08-18 19:21:56 |+------------------+-----------------------+---------------------+1 row in set (0.05 sec)

(5) 月関数 month(date) と monthname を取得します(日付)

1.month (日付)
[例] month()関数を使用して、指定した日付の月を返します SQL文は次のとおりです。 2.monthname(date)

【例】 monthname()関数を使用して返す 日付に月名を指定 SQL文は以下の通りです。 dayname(d)、dayofweek(d)、weekday(d)の関数


1. dayname(d)

[例] dayname()関数を使用して、指定した日付の営業日名を返します。
mysql> select from_unixtime('1566127316');+-----------------------------+| from_unixtime('1566127316') |+-----------------------------+| 2019-08-18 19:21:56.000000  |+-----------------------------+1 row in set (0.00 sec)
2.dayofweek(d)
[使用例] dayofweek()を使用する 日付に対応する週のインデックスを返します SQL文は次のとおりです。 ##
mysql> select utc_date(),utc_date()+0;+------------+--------------+| utc_date() | utc_date()+0 |+------------+--------------+| 2019-08-18 |     20190818 |+------------+--------------+1 row in set (0.05 sec)

3.weekday(d)

weekday(d) は、d に対応する平日インデックスを返します: 0 は月曜日を表し、世代 1 は火曜日を表し、...6 は日曜日を表します。


[例] Weekday() 関数を使用して、日付に対応する営業日のインデックスを返します。SQL ステートメントは次のとおりです。関数week(d)を使用して週番号を取得し、dayofyear(d)

week(d)でd日がその年の週であることを計算します。二重パラメータ形式を使用すると、次のいずれかを指定できます。週は日曜日または月曜日から始まります。Mode パラメータが Ignore の場合は、default_week_format システム引数の値を使用します。

1.week(d)
[例]week()関数を使用して、指定した日付の年間週をクエリします。SQL文は次のとおりです。

2 .weekofyear(d)

[例] 指定した日付の年間週をクエリするには、weekofyear() を使用します。SQL ステートメントは次のとおりです。

mysql> select utc_time(),utc_time()+0;+------------+--------------+| utc_time() | utc_time()+0 |+------------+--------------+| 11:32:27   |       113227 |+------------+--------------+1 row in set (0.00 sec)
  • (8 ) 日数を取得する関数 dayofyear() d) と dayofmonth(d)
1.dayofyear()

【例】 dayofyear() 関数を使用して、指定された日付の位置を返します

mysql> select month('2019-08-18');+---------------------+| month('2019-08-18') |+---------------------+|                   8 |+---------------------+1 row in set (0.00 sec)

2.dayofmonth()
[例] dayofmonth()関数を使用して、月内の指定した日付の位置を返します。
mysql> select monthname('2019-08-18');+-------------------------+| monthname('2019-08-18') |+-------------------------+| August                  |+-------------------------+1 row in set (0.00 sec)
  • (9) 年、四半期、時、分、秒の関数を取得します。
1.YEAR(date)

[例] year()関数を使用して、指定した日付に対応する年を返します。SQL文は、

mysql> select dayname('2019-08-18');+-----------------------+| dayname('2019-08-18') |+-----------------------+| Sunday                |+-----------------------+1 row in set (0.00 sec)
2となります。 QUARTER(date)

[例]quarter()関数を使用して、指定した日付に対応する四半期を返します。SQL文は次のとおりです。例】 指定した時刻の分の値を返すには、 minutes() 関数を使用します。 SQL 文は次のとおりです。

mysql> select dayofweek('2019-08-18');+-------------------------+| dayofweek('2019-08-18') |+-------------------------+|                       1 |+-------------------------+1 row in set (0.00 sec)
4.SECOND(time)
【例】 Second() 関数を使用する指定された時刻の秒の値を返す SQL ステートメントは次のとおりです:
mysql> select second('20:07:00');+--------------------+| second('20:07:00') |+--------------------+|                  0 |+--------------------+1 row in set (0.00 sec)

(10)获取日期的指定值的函数extract(type from date)

【例】使用extract(type from date)函数提取日期或时间值。

mysql> select extract(year from '2019-08-18') as col1,
    -> extract(year_month from '2019-08-18 20:46:01') as col2,
    -> extract(day_minute from '2019-08-18 20:46:01') as col3;+------+--------+--------+| col1 | col2   | col3   |+------+--------+--------+| 2019 | 201908 | 182046 |+------+--------+--------+1 row in set (0.00 sec)

(11)时间和秒钟转换的函数

1.time_to_sec(time)

  • time_to_sec(time)返回已经转化为秒的time参数。转换公式为:小时x3600+分钟*60+秒。

【例】使用time_to_sec函数将时间值转换为秒值。

mysql> select time_to_sec('20:34:00');+-------------------------+| time_to_sec('20:34:00') |+-------------------------+|                   74040 |+-------------------------+1 row in set (0.00 sec)

2.sec_to_time(seconds)

  • sec_to_time函数返回值加上0值之后变成了小数值。
  • time_to_sec正好和sec_to_time互为反函数。

【例】使用sec_to_time()函数将秒值转换为时间格式,SQL语句如下;

mysql> select sec_to_time(2345),sec_to_time(2345)+0,
    -> time_to_sec('20:36:00'),sec_to_time('74040');+-------------------+---------------------+-------------------------+----------------------+| sec_to_time(2345) | sec_to_time(2345)+0 | time_to_sec('20:36:00') | sec_to_time('74040') |+-------------------+---------------------+-------------------------+----------------------+| 00:39:05          |                3905 |                   74160 | 20:34:00.000000      |+-------------------+---------------------+-------------------------+----------------------+1 row in set (0.05 sec)

(12)计算日期和时间的函数。

MySQL中计算日期和时间的格式:
MySQL が日付関数を導入
1.date_add(date,interval expr type)adddate(date,interval expr type)两个函数的作用相同,执行日期的加运算:

【例】使用date_add()和adddate()函数执行日期加操作,SQL语句如下:

mysql> select date_add('2019-08-18 23:59:59',interval 1 second) as col1,
    -> adddate('2019-08-18 23:59:59',interval 1 second) as col2,
    -> date_add('2019-08-18 23:59:59',interval '1:1' minute_second) as col3;+---------------------+---------------------+---------------------+| col1                | col2                | col3                |+---------------------+---------------------+---------------------+| 2019-08-19 00:00:00 | 2019-08-19 00:00:00 | 2019-08-19 00:01:00 |+---------------------+---------------------+---------------------+1 row in set (0.05 sec)

2.date_sub(date,interval expr type)subdate(date,interval expr type)两个函数作用相同,执行日期的减运算:

【例】使用date_sub和subdate函数执行日期减操作,SQL语句如下:

mysql> select date_sub('2019-08-18',interval 31 day) as col1,
    -> subdate('2019-08-18',interval 31 day) as col2,
    -> date_sub('2019-08-18 21:15:10',interval '0 0:1:1' day_second) as col3;+------------+------------+---------------------+| col1       | col2       | col3                |+------------+------------+---------------------+| 2019-07-18 | 2019-07-18 | 2019-08-18 21:14:09 |+------------+------------+---------------------+1 row in set (0.00 sec)

3.addtime(date,expr)函数将expr值添加到date,并返回修改后的值,date是一个日期或者日期时间表达式,而expr是一个时间表达式。
【例】使用addtime进行时间加操作,SQL语句如下;

mysql> select addtime('2019-08-18 21:59:59','1:1:1'),addtime('02:02:02','02:00:00');+----------------------------------------+--------------------------------+| addtime('2019-08-18 21:59:59','1:1:1') | addtime('02:02:02','02:00:00') |+----------------------------------------+--------------------------------+| 2019-08-18 23:01:00                    | 04:02:02                       |+----------------------------------------+--------------------------------+1 row in set (0.05 sec)

4.subtime(date,expr)函数将date减去expr值,并返回修改后的值,date是一个日期或者日期时间表达式,expr是一个时间表达式。
【例】使用subtime()函数执行减操作,SQL语句如下:

mysql> select subtime('2019-08-18 21:59:59','1:1:1'),subtime('02:02:02','02:00:00');+----------------------------------------+--------------------------------+| subtime('2019-08-18 21:59:59','1:1:1') | subtime('02:02:02','02:00:00') |+----------------------------------------+--------------------------------+| 2019-08-18 20:58:58                    | 00:02:02                       |+----------------------------------------+--------------------------------+1 row in set (0.00 sec)

5.datediff(date1,date2)返回起始时间date1和结束时间date2之间的天数,date1和date2为日期或date-and-time表达式。计算中只用到这些值的日期部分。
【例】使用datediff()函数计算两个日期之间的间隔天数,SQL语句如下;

mysql> select datediff('2019-08-18 21:59:59','2018-07-18') as col1,
    -> datediff('2019-08-18 22:00:00','2019-08-20') as col2;+------+------+| col1 | col2 |+------+------+|  396 |   -2 |+------+------+1 row in set (0.00 sec)

(13)将日期和时间格式化的函数。

DATE_FORMAT时间日期格式:
MySQL が日付関数を導入
1.date_format()
【例】使用date_format()函数格式化输出日期和时间值,SQL语句如下:

mysql> select date_format('2019-08-18 23:33:00','%w %m %y') as col1,
    ->  date_format('2019-08-18 23:33:00','%D %y %a %d %m %b %j') as col2;+---------+---------------------------+| col1    | col2                      |+---------+---------------------------+| 0 08 19 | 18th 19 Sun 18 08 Aug 230 |+---------+---------------------------+1 row in set (0.05 sec)

2.time_format()
【例】使用time_format(time,format)函数格式化输入时间值,SQL语句如下:

mysql> select time_format('23:39:30','%H %k %h %I %l');+------------------------------------------+| time_format('23:39:30','%H %k %h %I %l') |+------------------------------------------+| 23 23 11 11 11                           |+------------------------------------------+1 row in set (0.00 sec)

3.get_format()

get_format返回的格式字符串:
MySQL が日付関数を導入
【例】使用get_format()函数显示不同格式化类型下的格式字符串,SQL语句如下:

mysql> select get_format(date,'eur'),get_format(date,'usa');+------------------------+------------------------+| get_format(date,'eur') | get_format(date,'usa') |+------------------------+------------------------+| %d.%m.%Y               | %m.%d.%Y               |+------------------------+------------------------+1 row in set (0.05 sec)

【例】在date_format()函数中,使用get_format函数返回的显示格式字符串来显示指定的日期值,SQL语句如下:

mysql> select date_format('2019-08-19 23:41:30',get_format(date,'usa'));+-----------------------------------------------------------+| date_format('2019-08-19 23:41:30',get_format(date,'usa')) |+-----------------------------------------------------------+| 08.19.2019                                                |+-----------------------------------------------------------+1 row in set (0.00 sec)

相关免费学习推荐:mysql数据库(视频)

以上がMySQL が日付関数を導入の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。