在SQL Server和VB.Net之间具有一致的日期时间格式的最佳方法

代码生成

我正在开发一个VB.Net应用程序,该应用程序的操作严重依赖日期和时间。如果应用程序日期格式与服务器日期格式不匹配,则日期格式可能会发生冲突,因此解决此问题的最佳实践是什么。我知道SQL Serverdatetime格式取决于服务器语言,而VB.Net将使用本地计算机的日期时间格式。这意味着,如果用户更改日期时间格式,则在插入时会引起问题。

我的想法是SELECT GETDATE()在应用程序启动时使用,然后使用VB.Net标识其日期时间格式,每当我尝试插入日期时间值时,我都会将其转换为应用程序启动时确定的日期时间格式。

是否有更好的方法在应用程序和SQL Server之间具有一致的日期时间格式以避免冲突。例如:混合一天和一个月。

marc_s

SQL Server不会DateTime以任何字符串格式存储a-它以8字节数字值存储。

各种设置(语言,日期格式)仅影响DateTime在SQL Server Management Studio中向您显示的方式-或当您尝试将字符串转换为时如何对其进行解析DateTime

SQL Server支持多种格式-有关CAST和CONVERT的信息,请参见MSDN联机丛书这些格式中的大多数取决于您所拥有的设置-因此,这些设置有时可能会起作用-有时不起作用。

因此,如果可能的话,不要DateTime一直在日期和字符串之间转换将其保留为DateTime.NET中的值,使用DATEDATETIME2(n)SQL Server中的值,并使日期保持其原始格式。使用支持本机数据类型的参数化查询DateTime因此您无需将日期转换为字符串然后返回!

如果出于某种原因必须使用字符串表示日期,则解决此问题的唯一可靠方法是使用SQL Server支持的(略微适应)ISO-8601日期格式-该格式始终有效-不管您使用哪种SQL Server语言和dateformat设置。

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

  • YYYYMMDD只是日期(无时间部分);注意:没有破折号!,那非常重要!YYYY-MM-DD不是独立于你的SQL Server的日期格式设置,将适用于所有情况!

或者:

  • YYYY-MM-DDTHH:MM:SS日期和时间-请在此处注意:此格式带有破折号(但可以省略),并T在的日期和时间部分之间固定为定界符DATETIME

这对SQL Server 2000及更高版本有效。

如果使用SQL Server 2008或更高版本以及DATE数据类型(仅DATE-不使用 DATETIME!),则实际上也可以使用该YYYY-MM-DD格式,并且格式也可以在SQL Server中进行任何设置。

不要问我为什么整个主题如此棘手且有些令人困惑-这就是事实。但是使用该YYYYMMDD格式时,对于SQL Server的任何版本以及SQL Server中的任何语言和dateformat设置,都应该没问题。

DATE如果只需要日期部分,并且DATETIME2(n)同时需要日期和时间,则建议使用SQL Server 2008及更高版本DATETIME如果可能,您应该尝试逐步淘汰数据类型

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SQL Server和VB.Net之间具有一致的日期时间格式的最佳方法

来自分类Dev

VB.net和SQL Server中的日期和时间格式

来自分类Dev

在VB.NET中调用自定义SQL Server存储过程和URL重定向

来自分类Dev

如何使用vb.net和SQL Server检查记录是否存在

来自分类Dev

备份和保存SQL Server数据库的VB.Net代码不起作用

来自分类Dev

使用vb.net 2008和SQL Server数据库的Crystal Reports

来自分类Dev

使用VB.Net和SQL Server循环时无法获得所需的输出

来自分类Dev

如何设置和管理要在 VB.NET 中使用的多个 SQL Server 脚本?

来自分类Dev

我在vb和SQL Server上出错

来自分类Dev

具有日期时间的SQL Server查询

来自分类Dev

为什么“日期”和“雷鸟”之间的时间格式不一致?

来自分类Dev

将日期时间转换为varchar时,SQL Server 2008的结果不一致

来自分类Dev

从VB插入日期到SQL Server

来自分类Dev

MSExcel和SQL Server中日期时间转换之间的差异

来自分类Dev

使用 SQL Server 2012 查找日期和时间之间的冲突

来自分类Dev

关键字“用户”附近的语法不正确-如何编写查询-VB.net和SQL Server

来自分类Dev

如何使用VB.NET将DataAdapter配置为对选择,更新,插入和删除命令使用Sql Server存储过程?

来自分类Dev

SQL Server连接日期和时间

来自分类Dev

SQL Server中的CAST日期和时间

来自分类Dev

从SQL Server转换日期和时间

来自分类Dev

时间和日期冲突-SQL Server

来自分类Dev

SQL Server 清理不一致的日期

来自分类Dev

SQL日期时间:在Oracle和SQL Server上添加时间

来自分类Dev

在 SQL Server 中转置具有日期时间记录的表

来自分类Dev

SQL日期时间溢出。Vb.net

来自分类Dev

如何在sql中的where条件下从具有UTC格式的日期和时间的列中获取记录?

来自分类Dev

SQL Server中的日期时间格式

来自分类Dev

从SQL Server删除所有具有相同前缀的表-vb.net

来自分类Dev

分析具有大量列的 SQL Server 表的最佳方法?

Related 相关文章

  1. 1

    在SQL Server和VB.Net之间具有一致的日期时间格式的最佳方法

  2. 2

    VB.net和SQL Server中的日期和时间格式

  3. 3

    在VB.NET中调用自定义SQL Server存储过程和URL重定向

  4. 4

    如何使用vb.net和SQL Server检查记录是否存在

  5. 5

    备份和保存SQL Server数据库的VB.Net代码不起作用

  6. 6

    使用vb.net 2008和SQL Server数据库的Crystal Reports

  7. 7

    使用VB.Net和SQL Server循环时无法获得所需的输出

  8. 8

    如何设置和管理要在 VB.NET 中使用的多个 SQL Server 脚本?

  9. 9

    我在vb和SQL Server上出错

  10. 10

    具有日期时间的SQL Server查询

  11. 11

    为什么“日期”和“雷鸟”之间的时间格式不一致?

  12. 12

    将日期时间转换为varchar时,SQL Server 2008的结果不一致

  13. 13

    从VB插入日期到SQL Server

  14. 14

    MSExcel和SQL Server中日期时间转换之间的差异

  15. 15

    使用 SQL Server 2012 查找日期和时间之间的冲突

  16. 16

    关键字“用户”附近的语法不正确-如何编写查询-VB.net和SQL Server

  17. 17

    如何使用VB.NET将DataAdapter配置为对选择,更新,插入和删除命令使用Sql Server存储过程?

  18. 18

    SQL Server连接日期和时间

  19. 19

    SQL Server中的CAST日期和时间

  20. 20

    从SQL Server转换日期和时间

  21. 21

    时间和日期冲突-SQL Server

  22. 22

    SQL Server 清理不一致的日期

  23. 23

    SQL日期时间:在Oracle和SQL Server上添加时间

  24. 24

    在 SQL Server 中转置具有日期时间记录的表

  25. 25

    SQL日期时间溢出。Vb.net

  26. 26

    如何在sql中的where条件下从具有UTC格式的日期和时间的列中获取记录?

  27. 27

    SQL Server中的日期时间格式

  28. 28

    从SQL Server删除所有具有相同前缀的表-vb.net

  29. 29

    分析具有大量列的 SQL Server 表的最佳方法?

热门标签

归档