加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在C#中格式化SQL友好日期/时间

发布时间:2020-12-16 00:01:51 所属栏目:百科 来源:网络整理
导读:我正在为我的应用程序构建一些测试场景.为了做到这一点,我有一些代码生成一些SQL来帮助我正确测试.此处显示了生成的SQL示例: INSERT INTO MyTable( [ID],[Name],[CheckInDate],[CheckOutDate])VALUES( 1,'A title','Sat,17 Dec 2011 14:33:12 GMT',17 Dec 2
我正在为我的应用程序构建一些测试场景.为了做到这一点,我有一些代码生成一些SQL来帮助我正确测试.此处显示了生成的SQL示例:

INSERT INTO MyTable
(
 [ID],[Name],[CheckInDate],[CheckOutDate]
)
VALUES
(
  1,'A title','Sat,17 Dec 2011 14:33:12 GMT',17 Dec 2011 15:13:12 GMT'
)

当我尝试执行此SQL时,我收到以下内容:
从字符串转换日期和/或时间时转换失败.

如何格式化日期/时间字符串以便SQL Server 2008接受它们?我真的需要我的C#代码来生成SQL(包括日期/时间项)来正确创建我的测试.

谢谢!

解决方法

解决此问题的方法是使用SQL Server支持的ISO-8601日期格式 – 此格式始终有效 – 无论您的SQL Server语言和日期格式设置如何.

SQL Server支持ISO-8601 format有两种形式:

> YYYYMMDD仅适用于日期(没有时间部分) – 请注意:没有破折号!这非常重要! YYYY-MM-DD不依赖于SQL Server中的dateformat设置,并且不适用于所有情况!

要么:

> YYYY-MM-DDTHH:MM:SS的日期和时间 – 请注意:此格式有破折号.

这适用于SQL Server 2000及更高版本.

如果您使用SQL Server 2008和DATE数据类型(仅DATE – 而不是DATETIME!),那么您确实也可以使用YYYY-MM-DD格式,这也适用于SQL Server中的任何设置.

不要问我为什么整个主题如此棘手而且有些混乱 – 这就是它的方式.但是使用YYYYMMDD格式,您可以适用于任何版本的SQL Server以及SQL Server中的任何语言和日期格式设置.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读