如果我有YYYYMMDD格式的日期如何在Xquery版本“1.0”中验证,那么它检查月份和年份是否有效,如果说它们有效,那么月份为02的闰年可以有一个日期29否则最多28。
Oracle融合中间件等多种集成工具实现了Xquery版本“1.0”而不是“3.0”
答案 0 :(得分:1)
首先,尽管您的用例相当简单:通常避免自行篡改日期(尤其是时间),并始终依赖已经实现的功能handling date and time is horribly complicated if you want to do it right。
将字符串转换为XQuery的日期函数能够解析的表示形式。如果你可以从字符串构造一个日期,它是有效的;如果发生错误,则无效。可以使用xs:date($string)
构建日期。转换字符串的一种方法是使用substring(...)
和string-join(...)
:
xs:date(string-join((substring($date, 1, 4), substring($date, 5, 2), substring($date, 7, 2)), '-'))
要捕获错误,请使用try
/catch
block。