【发布时间】:2017-10-23 19:57:37
【问题描述】:
是的,我知道以下不是最佳实践,而是继承了 db。
我的字符串为 'MM/dd/yy tt:hh:mm'。有时字符串是错误的 'tt:hh:mm'。
如果我将 'tt:hh:mm' 转换为日期时间,它会成功,并将默认日期设置为 1900-01-01。我希望这失败。
isdate('08:00:00') 成功返回 1。
我想要以下内容:
myisdatetime(' 08:00:00') fails return 0
myisdatetime( 'MM/dd/yy tt:hh:mm') success returns 1
甚至可以指定日期时间格式。即精确解析。
【问题讨论】:
-
也许只是转换为日期时间,然后检查字符串是否包含子字符串
1900-01-01并因此失败?那个日期曾经是一个有效的条目吗? @SeanLange 也有一个很好的观点 -
也许就像检查 '/' 的 charindex 一样简单??
-
当然,这不是正确的格式吗?你的意思是说
MM/dd/yy tt:hh:mm? (您指定了两次mm[分钟],一次用于月份,一次用于分钟)。 -
At times string is 'tt:hh:mm' in error.- 你这么说,但你的例子显示了08:00:00的测试用例。这不是您指定的格式...tt:hh:mm=PM:04:17,这是表示时间的一种非常奇怪的方式,但与您的问题不符。 -
这种格式的tt是什么?不应该是 hh:mm:ss 吗?
标签: sql-server date parsing datetime