如何检查 SQL 中的 TIMESTAMP 格式?
How to check TIMESTAMP format in SQL?
检查具有类似于 TIMESTAMP_NTZ 的值的 JSON 的 VARIANT TYPE 是否具有正确格式的最佳方法是什么?
例如,这是我想要的正确格式
2020-12-26T12:12:11.215581Z
但有时它在数据库中看起来不一样,就像这样
2021-11-26T12:12:11.215581Z[UTC]
我想检测与参考格式不同的记录。
我尝试使用简单的 LIKE,但它忽略了可能与此不同的格式。
LIKE '%[UTC]%'
如果您要检测的所有记录都出现在格式的末尾之外,那么您可以使用长度。
基本上:
WHERE NOT len(column_name)=27
27 因为您的正确格式 2020-12-26T12:12:11.215581Z 有 27 个字符。
您可以使用正则表达式来检查所需格式的相等性。如果 rdbms 已知,我将扩展此答案。
[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{6}Z
MySQL & SQLite:
SELECT * FROM table
WHERE timestamp not REGEXP '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{6}Z';
甲骨文:
SELECT * FROM table
WHERE not REGEXP_LIKE(timestamp, '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{6}Z');
检查具有类似于 TIMESTAMP_NTZ 的值的 JSON 的 VARIANT TYPE 是否具有正确格式的最佳方法是什么?
例如,这是我想要的正确格式
2020-12-26T12:12:11.215581Z
但有时它在数据库中看起来不一样,就像这样
2021-11-26T12:12:11.215581Z[UTC]
我想检测与参考格式不同的记录。
我尝试使用简单的 LIKE,但它忽略了可能与此不同的格式。
LIKE '%[UTC]%'
如果您要检测的所有记录都出现在格式的末尾之外,那么您可以使用长度。
基本上:
WHERE NOT len(column_name)=27
27 因为您的正确格式 2020-12-26T12:12:11.215581Z 有 27 个字符。
您可以使用正则表达式来检查所需格式的相等性。如果 rdbms 已知,我将扩展此答案。
[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{6}Z
MySQL & SQLite:
SELECT * FROM table
WHERE timestamp not REGEXP '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{6}Z';
甲骨文:
SELECT * FROM table
WHERE not REGEXP_LIKE(timestamp, '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{6}Z');