sql - 1950 年之前的日期等同于 future 日期

标签 sql sql-server tsql

我需要将我的字符串日期转换为日期时间类型。

这是一个约会场景:

'19-Apr-36'

DECLARE @strDate VARCHAR(25)
SELECT @strDate = '19-Apr-36'

SELECT CAST(@strDate as datetime)

结果为 2036-04-19 的 future 日期

这通常是如何处理的,还有哪些其他注意事项?

最佳答案

默认情况下,SQL Server 将 36 年解释为当前世纪。您需要明确说明 1936 或更改 two digit year cutoff option .

编辑:只是为了澄清 - 你不想更改设置,因为它是服务器范围内的,并且会导致更多的困惑而不是帮助你。最好使用明确的日期。

关于sql - 1950 年之前的日期等同于 future 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9805686/

相关文章:

sql - 如何返回满足特定事件序列的行?

java - 如何排除hibernate中会导致SQLException的脏数据

sql-server - 如何在sql查询中的内连接和case语句上应用partition by和row_number()

c# - 根据最近相关实体的值选择实体集合

sql-server - 在动态数据透视中对月份名称进行排序

sql-server - 通过 T-SQL 访问当前执行的存储过程名称?

php函数导致sql查询失败

sql - 使用一个 SQL 脚本删除子行和父行

c# - 如何在 ASP.NET 中创建带有节和标题的表?

仅连续 3 个月的 SQL 记录