gpt4 book ai didi

sql-server - 是否存在一种方法来验证像 'Abr 21 2010 12:00AM' 这样的字符串是日期时间还是转换为日期时间之后?

转载 作者:行者123 更新时间:2023-12-02 08:15:22 26 4
gpt4 key购买 nike

您好,我正在使用 sql server 2014,我尝试解析这个“2010 年 12 月 21 日 12:00AM”至今,我试过这样的事情:

SELECT CONVERT(DATETIME,'Abr 21 2010 12:00AM' ,105)

SELECT CAST('Abr 21 2010 12:00AM' AS DATETIME)

如果我尝试验证格式是否符合日期:

SELECT ISDATE('Abr 21 2010 12:00AM')

输出是:“从字符串转换日期和/或时间时转换失败。”

提前致谢。

最佳答案

SELECT ISDATE('Abr 21 2010 12:00AM') 返回 0,这是 SQL Server 表示“不,这不是日期”的方式。

SELECT ISDATE('Apr 21 2010 12:00AM') 返回 1,表示“是的,这是一个日期。” (我只是把月份名称中的 B 换成了 P...)

这只是一个错字吗?

编辑:

既然你提到这可能是一个基于语言的问题,我会在这里补充一点,你可以使用 SET LANGUAGE 命令来改变你的数据库语言,即使是暂时的。 (这已经作为 separate answer here 添加。)语法如下所示:

SET LANGUAGE 'Spanish';

SELECT ISDATE('Abr 21 2010 12:00AM'); -- Returns 1, indicating that this is a date

SET LANGUAGE 'English'; -- Changes the DB Language setting back to English

SELECT ISDATE('Abr 21 2010 12:00AM'); -- Returns 0, because the language is no longer appropriate

关于sql-server - 是否存在一种方法来验证像 'Abr 21 2010 12:00AM' 这样的字符串是日期时间还是转换为日期时间之后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42461157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com