2017-02-17 3 views
0

JSON文字列を格納するためにMySQL jsonデータ型を使用しています。 JSON文字列には、entry_timeとentry_dateという2つのフィールドがあります。 ENTRY_DATE:2017-02-15T00:00:00.00Z ENTRY_TIME:35:0000-00-00T04 51.29ZSOからの8609 JSON値からの仮想日付と時刻の列の作成

を私が作成しようとしています以下のように、これらのフィールドの値は、ISO 8609形式で保存されていますこれらの2つの属性からの仮想列。 MySQL 5.7にはNO_ZERO_DATEが設定されているため、これらの値を日付と時刻の列として抽出する方法はありません。ここで私が試したことは次のとおりです:

alter table odh 
add entry_time time GENERATED ALWAYS AS (REPLACE,(json_extract(jdoc,'$.entry_time')),'0000-00-00T','') 

しかし、私はいずれかの仕事を得ることができませんいずれかの助けに感謝します!

答えて

2

sql_modeの

mysql> SELECT STR_TO_DATE('0000-00-00T04:35:51.29Z', '%Y-%m-%dT%H:%i:%s.%fZ'); 
+-----------------------------------------------------------------+ 
| STR_TO_DATE('0000-00-00T04:35:51.29Z', '%Y-%m-%dT%H:%i:%s.%fZ') | 
+-----------------------------------------------------------------+ 
| NULL               | 
+-----------------------------------------------------------------+ 
1 row in set, 1 warning (0,00 sec) 

mysql> set sql_mode=''; 
Query OK, 0 rows affected, 1 warning (0,00 sec) 

mysql> SELECT STR_TO_DATE('0000-00-00T04:35:51.29Z', '%Y-%m-%dT%H:%i:%s.%fZ'); 
+-----------------------------------------------------------------+ 
| STR_TO_DATE('0000-00-00T04:35:51.29Z', '%Y-%m-%dT%H:%i:%s.%fZ') | 
+-----------------------------------------------------------------+ 
| 0000-00-00 04:35:51.290000          | 
+-----------------------------------------------------------------+ 
1 row in set (0,00 sec) 

mysql> 
の設定を参照してください
関連する問題