MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQL EXTRACT()関数ではどのような複合単位を使用できますか?


MySQL EXTRACT()関数は次の複合単位を使用できます-

  • SECOND_MICROSECOND
  • MINUTE_MICROSECOND
  • HOUR_MICROSECOND
  • DAY_MICROSECOND
  • MINUTE_SECOND
  • HOUR_SECOND
  • HOUR_MINUTE
  • DAY_SECOND
  • DAY_MINUTE
  • DAY_HOUR
  • YEAR_MONTH

EXTRACT()関数で使用されるこれらの複合単位の例のいくつかは次のとおりです-

mysql> Select EXTRACT(YEAR_MONTH from '2017-10-20');
+---------------------------------------+
| EXTRACT(YEAR_MONTH from '2017-10-20') |
+---------------------------------------+
|                             201710    |
+---------------------------------------+
1 row in set (0.00 sec)

上記のクエリは、日付から年と月の値を返します。

mysql> Select EXTRACT(DAY_HOUR from '2017-10-20 05:46:45');
+----------------------------------------------+
| EXTRACT(DAY_HOUR from '2017-10-20 05:46:45') |
+----------------------------------------------+
|                                         2005 |
+----------------------------------------------+
1 row in set (0.00 sec)

上記のクエリは、日付からの曜日と時間の値を返します。

上記の複合単位は値の完全なセットであることを考慮に入れる必要があります。つまり、DAY_MINUTEを使用する場合、MySQLはDAY、HOUR、およびMINUTEを返します。これは、通常予想される値が開始ユニットと終了ユニットの間に入力されることを意味します。

たとえば、次のクエリはDAY_MICROSECOND複合単位を使用しており、MySQLはDAY、HOUR、MINUTE、SECOND、およびMICROSECONDを返します。これは、HOUR、MINUTE、およびSECONDの値がDAYとMICROSECONDの間に入力されることを意味します。

mysql> Select EXTRACT(DAY_MICROSECOND from '2017-10-22 05:52:45.102356');
+---------------------------------------------------------------------------+
| EXTRACT(DAY_MICROSECOND from '2017-10-22 05:52:45.102356')                |
+---------------------------------------------------------------------------+
|                                                            22055245102356 |
+---------------------------------------------------------------------------+
1 row in set (0.00 sec)

  1. MySQLで複合的な一意性を強制できますか?

    はい、できます。理解するために、最初にテーブルを作成しましょう- mysql> create table enforceCompoundUniqueness    -> (    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> StudentName varchar(40) NOT NULL,    -> StudentMobileNumber varchar(12) NOT NULL,    

  2. MySQLでフロートを保存するために何を使用しますか?

    フロートをMySQLに格納するには、DECIMAL()の概念を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable    (    Price DECIMAL(10,2)    ); Query OK, 0 rows affected (1.59 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(874674.50); Query OK, 1 row affected (