≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 数据库 > SQL Server

SQL Server中SQL日期转换出错解析

人气:373 时间:2020-06-05

这篇文章主要为大家详细介绍了SQL Server中SQL日期转换出错解析,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!

开发人员有时候使用类似下面SQL将字符串转换为日期时间类型,乍一看,这样的SQL的写法是没有什么问题的。但是这样的SQL其实有时候就是一个定时炸弹,随时可能出现问题(),下面简单对这种情况进行一个简单概括。

代码如下:


SELECT CONVERT(DATETIME, '2020-01-13 6:46:42');

如果你将连接数据库的登录名的默认语言修改为Aribc,然后去执行上面SQL语句,就会遇到错误,为什么呢?

【图片暂缺】

为什么上面SQL的日期转换出错了呢?其实是因为登录名修改默认语言后,会话对应的date_format变化了,从mdy变成了dmy,所以上面转换就报错了,有时候不报错,但是可能转换成一个错误日期,产生了逻辑错误,这个反而是一个跟糟糕的隐性错误。等你发现的时候,可能已经产生大量错误数据了。

代码如下:


SELECT session_id
  ,program_name
  ,client_interface_name
  ,language
  ,date_format
FROM sys.dm_exec_sessions
WHERE session_id = 53;

【图片暂缺】

关于不同语言的默认date_format,可以使用下面命令查看:

代码如下:


sp_helplanguage 'us_english'

另外一种情况,如果当前会话使用SET命令修改过DATEFORMAT,也会遇到这个错误,如下所示:

代码如下:


SET DATEFORMAT DMY;
GO
SELECT CONVERT(DATETIME, '2020-01-13 6:46:42');

【图片暂缺】

这种情况就比较复杂了,有可能是某一段SQL里面设置了DATEFORMAT,导致整个会话后面的日期格式全部变化了。所以上面这种SQL的“健壮性”就比较差,在平时就要避免写出这样的SQL,如果你使用这样的SQL,不管是会话的默认语言变化了,还是当前会话的DATEFORMAT变化了,都不会产生错误或逻辑错误。

代码如下:


SELECT CONVERT(DATETIME,'2020-01-13 6:46:42', 120)。

平时遇到这种日期转换,就一定要明确指定转换格式,让其不要受会话的DATEFORMAT变化影响,书写健壮、可靠的SQL语句,下面这两个简单SQL的细微差别,也可判别一个人是否用有书写健壮性SQL的意识!

代码如下:


SELECT CONVERT(DATETIME, '2020-01-13 6:46:42');
SELECT CONVERT(DATETIME, '2020-01-13 6:46:42', 120)

 

总结

 

以上所述是小编给大家介绍的解析SQL Server中SQL日期转换出错的原因,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对四海网网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

本文来自:http://www.q1010.com/179/8986-0.html

注:关于SQL Server中SQL日期转换出错解析的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:SQL SERVER

您可能感兴趣的文章

  • 解决SqlServer 各版本 sa帐户不能登录问题
  • Windows使用性能监视器监控SqlServer的常见指标示例
  • 调整SQLServer2000运行数据库结构的简单示例
  • 解决SQLServer远程连接失败的问题
  • 数据库触发器DB2和SqlServer区别解析
  • 解决在Azure上部署Sqlserver网络访问不了示例
  • 在sqlserver中如何使用CTE解决复杂查询问题
  • SqlServer应用之sys.dm_os_waiting_tasks 引发的疑问(下)
  • SqlServer如何通过SQL语句获取处理器(CPU)、内存(Memory)、磁盘(Disk)以及操作系统相关信息
  • SQLServer中merge函数用法分析
上一篇:SQL Server数据库常用Transact-SQL脚本的简单示例
下一篇:SQL Server误设置max server memory的简单示例
热门文章
  • SQL Server SQL获取第一条记录的方法
  • SQL Server出现System.OutOfMemoryException异常的解决方法
  • SQL Server的 update from 语句的简单示例
  • SQL Server 数据库备份方法菜鸟教程
  • SQL Server 多表关联时在where语句中慎用trim()方法
  • SQL Server数据类型及长度限制详细说明
  • mybaits非配置原因,导致SqlSession was not registered for synchronization异常解析
  • SQL Server 收缩后对数据库的使用有影响吗?
  • SQL Server 格式导致的Excel导入sql出现异常的解决方法
  • SQL Server 连接服务器出现错误 7391的解决方法
  • 最新文章
    • SQL Server存储过程基本语法的简单示例
    • sql查询时增加自动编号和分页的简单示例
    • sql轻松应付百万数据的高效数据分页存储过程的简单示例
    • sql获取一条数据中所有字段的名称和值的实现方法
    • sql分割函数的简单示例
    • SQL Server异常捕获的简单示例
    • SQL SERVER回滚恢复误操作数据的实现方法
    • SQL Server函数或存储过程中抛出异常的实现方法
    • SQL Server创建数据库的完整代码
    • SQL Server创建数据库的命令用法示例

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。