Я только что написал Regex для управления датой и временем MySQL (и я думаю, что для Oracle или другого сервера баз данных это не так уж и отличается).
Этот ReGex очень безопасен и контролирует срок действия даты (месяцы через 28, 30 и 31 день и даже годы с 29/02). Затем он контролирует время.
Формат отметки времени следующий:
ГГГГ-ММ-ДД ЧЧ: ММ: СС
Вот регулярное выражение (довольно длинное):
((((19|20)([2468][048]|[13579][26]|0[48])|2000)-02-29|((19|20)[0-9]{2}-(0[4678]|1[02])-(0[1-9]|[12][0-9]|30)|(19|20)[0-9]{2}-(0[1359]|11)-(0[1-9]|[12][0-9]|3[01])|(19|20)[0-9]{2}-02-(0[1-9]|1[0-9]|2[0-8])))\s([01][0-9]|2[0-3]):([012345][0-9]):([012345][0-9]))
Матчи
2013-04-05 17:59:59 | 2013-07-30 01:22:42 | 2099-12-30 23:59:59 | 2016-02-28 00: 00: 00
Non-Похожее
2016-02-29 -01: 01: 02 | 3000-04-24 17:42:21 | 2012-03-03 24:24:02 | 2012-03-03 21: 60: 45
Не думаю, что смогу сделать более защищенным. Очень функционален и проверен.
Пожалуйста, если вы используете его, не стесняйтесь дать мне отзыв;)
К вашему сведению: Если вы просто ищете элемент управления Regex без времени, перейдите туда, чтобы найти его: Регулярное выражение, чтобы соответствовать действительным датам
(проверьте мой пост).
Приветствия