MySQLは、区切り文字のない数値と文字列を日付としてどのように解釈できますか?
区切り文字がなくても、 YYYYMMDDHHMMSSの形式の文字列または数値の場合 またはYYMMDDHHMMSS 日付が提供されているので意味があり、MySQLはその文字列を有効な日付として解釈します。
有効な日付と無効な日付の例が示されています-
mysql> Select Timestamp(20171022040536); +---------------------------+ | Timestamp(20171022040536) | +---------------------------+ | 2017-10-22 04:05:36 | +---------------------------+ 1 row in set (0.00 sec) mysql> Select Timestamp('20171022040536'); +-----------------------------+ | Timestamp('20171022040536') | +-----------------------------+ | 2017-10-22 04:05:36 | +-----------------------------+ 1 row in set (0.00 sec) mysql> Select Timestamp('171022040536'); +---------------------------+ | Timestamp('171022040536') | +---------------------------+ | 2017-10-22 04:05:36 | +---------------------------+ 1 row in set (0.00 sec)
上記のクエリは、MySQLによって日付値として解釈できる有効な文字列と数値の例を示しています。
mysql> Select Timestamp('20171022048536'); +-----------------------------+ | Timestamp('20171022048536') | +-----------------------------+ | NULL | +-----------------------------+ 1 row in set, 1 warning (0.00 sec)
上記のクエリは、無効な文字列の例です。文字列の値(85)が1分間間違っているため、MySQLはNULLを返します。
mysql> Select Timestamp('20171322040536'); +-----------------------------+ | Timestamp('20171322040536') | +-----------------------------+ | NULL | +-----------------------------+ 1 row in set, 1 warning (0.00 sec)
上記のクエリでは、文字列の値(13)が1か月間間違っているため、MySQLはNULLを返します。
-
DATEタイムスタンプを変換して月番号を返す
月番号のみを返すには、DATE_FORMAT()-を使用できます。 mysql> create table DemoTable1999 ( ArrivalDate timestamp ); Query OK, 0 rows affected (0.66 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1999 values('2019-01-01 12:34:00'); Query OK, 1 row
-
MySQLで特定の値を持つ列の数を数える方法は?
以下は構文です- select sum(yourColumnName1+yourColumnName2+yourColumnName3...N) as `anyAliasName1`, sum(yourColumnName1 and yourColumnName2 and yourColumnName3….N) as anyAliasName from yourTableName; テーブルを作成しましょう- mysql> create table demo36 −> ( −> id int not null auto_incremen