mysql regex

tf7tbtn2  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(233)

我正在实现regex来评估多个字段中的数据,目前需要mysql regex来评估时区格式(2018-04-02t10:13:00)我尝试过regex %Y-%m-%d T %H:%i:%s 但它不起作用。

vsikbqxv

vsikbqxv1#

你写的不是正则表达式。正则表达式看起来像 ....-..-..T..:..:.. 以最简单的形式,或者 (\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d) 以一种更复杂的方式(只允许数字),有组让regex引擎提取组件。
您可能需要的是mysql函数的格式 DATE_FORMAT() 以给定格式输入数据或以给定格式获取数据库的mout。
唉,你没有告诉我们更多的细节,所以我只能指导你到相关的手册部分。

chhkpiq4

chhkpiq42#

mysql> SELECT str_to_date('2018-04-02T10:13:00', '%Y-%m-%dT%H:%i:%s');
+---------------------------------------------------------+
| str_to_date('2018-04-02T10:13:00', '%Y-%m-%dT%H:%i:%s') |
+---------------------------------------------------------+
| 2018-04-02 10:13:00                                     |
+---------------------------------------------------------+
1 row in set (0.01 sec)

但是。。。如果字符串以“-07:00”结束以指示时区,则会更混乱。看到了吗 CONVERT_TZ 还有一些额外的分析。

4nkexdtk

4nkexdtk3#

您可以使用以下选项:

'^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$'

然而,模式匹配并不保证日期是有效的,例如。 2018-02-29T00:00:00 (闰年)或 2018-04-31T00:00:00 (4月31天)。

相关问题