【发布时间】:2011-07-11 21:53:29
【问题描述】:
我有一个 char(8) 字段,其中 should 确实包含 yyyymmdd 日期格式的值。
给定一个(假设的)表id(int)|datestring(char(8)) 我希望能够做类似的事情
SELECT id, isValidDate(datestring) FROM my_hypothetical_table
这对我来说很重要,它可以像查询一样运行(所以我可以,例如,SELECT * from othertable INNER JOIN hypothetical_table on hypothetical_table.id = othertable.hypothetical_FK WHERE isValidDate(hypothetical_table.datestring) = 1)。捕捉错误似乎不可行。
请注意,IsDate() 函数仅适用于斜线分隔的日期,不适用于 yyyymmdd 格式。
【问题讨论】:
-
为什么你认为 ISDATE() 只适用于斜线分隔的日期?你到底为什么要在 CHAR(8) 列中存储日期?
-
yyyymmdd 是 SQL Server 唯一安全的日期格式。阅读 cmets 到 2 个答案:stackoverflow.com/q/1138142/27535
-
我错误地这么认为,因为msdn.microsoft.com/en-us/library/ms187347(v=SQL.100).aspx 上列出的所有示例都使用该格式。显示如何订购您的 m/d/y
标签: sql-server tsql datetime