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

2024-03-06

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

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

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


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

各种设置(语言、日期格式)仅影响DateTime在 SQL Server Management Studio 中向您显示 - 或者当您尝试将字符串转换为DateTime.

SQL Server 支持多种格式 - 请参阅MSDN 有关 CAST 和 CONVERT 的在线书籍 http://msdn.microsoft.com/en-us/library/ms187928.aspx。大多数这些格式是依赖的根据您的设置 - 因此,这些设置有时可能有效 - 有时则无效。

所以如果有可能的话不转换之间的日期DateTime并一直串起来!将其保留为DateTime在 .NET 中,使用DATE or DATETIME2(n)在 SQL Server 中,并让日期采用其本机格式。使用参数化查询支持原生的DateTime数据类型所以你不需要将日期转换为字符串并返回!

如果出于某种原因必须使用字符串来表示日期,解决此问题的唯一可靠方法是使用(稍作修改)ISO-8601 日期格式SQL Server 支持 - 这种格式有效always- 无论您的 SQL Server 语言和日期格式设置如何。

The ISO-8601 格式 http://msdn.microsoft.com/en-us/library/ms180878.aspxSQL Server 支持两种类型:

  • YYYYMMDD仅适用于日期(无时间部分);请注意:没有破折号!,这非常重要!YYYY-MM-DD is NOT独立于 SQL Server 中的日期格式设置,并且将NOT在所有情况下都可以工作!

or:

  • YYYY-MM-DDTHH:MM:SS对于日期和时间 - 请注意:此格式has破折号(但他们can被省略)和一个固定的T作为日期和时间部分之间的分隔符DATETIME.

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

如果您使用 SQL Server 2008 或更高版本并且DATE数据类型(仅DATE - not DATETIME!),那么你确实也可以使用YYYY-MM-DD格式,并且也适用于 SQL Server 中的任何设置。

不要问我为什么整个主题如此棘手且有些令人困惑——事情就是这样。但随着YYYYMMDD格式,您应该适合任何版本的 SQL Server 以及 SQL Server 中的任何语言和日期格式设置。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 SQL Server 和 VB.Net 之间保持一致的日期时间格式的最佳方法 的相关文章

随机推荐

  • AppDomain.UnhandledException 未捕获未处理的异常

    我们有一个 NET 3 5 程序集 dll 由 VB6 代理 exe 通过 COM 接口执行 VB6 代码确实调用 Ensure that no system dialog comes up when we GPF PreviousErro
  • JPA 和数据库中的列顺序

    我使用 Eclipselink 作为我的持久性提供程序 有什么方法可以指定列在数据库中出现的顺序吗 数据库中的列顺序与我的实体中的属性顺序不匹配 据我了解按字母顺序排列的休眠顺序列 但我找不到 Eclipselink 的任何规范 Eclip
  • 如何修改 Poly3DCollection 对象的 zdata?

    我当前正在修改 Line2D 对象的 xdata 和 ydata 属性 如下所示 plt setp ph xdata event xdata ydata event ydata thisline figure canvas draw 我想对
  • 何时在 Python 的 AST 中使用 ExtSlice 节点?

    绿树蛇 http greentreesnakes readthedocs org en latest index html gives 一个例子 http greentreesnakes readthedocs org en latest
  • OpenGL 和 WebGL 的 Alpha 渲染差异

    I m rendering the same scene using the same exact C code once to native OpenGL on windows and once using Emscripten to W
  • 用于 JSON 请求的 AlamoFire 异步完成处理程序

    使用 AlamoFire 框架后 我注意到completionHandler 在主线程上运行 我想知道下面的代码是否是在完成处理程序中创建核心数据导入任务的好习惯 Alamofire request GET http myWebSite e
  • 依赖的非类型模板参数和可变参数模板

    我正在尝试扩展提供的可能性std integer sequence http en cppreference com w cpp utility integer sequence一个名为的新类integer range 显然 这在两个边界之
  • 如何使用 RVM 重新编译 ruby​​?

    我使用 RVM 安装了 Ruby 1 9 3 并且运行良好 然后我在 ruby C 源文件中进行了一些更改 我想重新编译并重新安装它 以便可以使用这些更改 我还没有找到任何类型的rvm重新编译然而命令 使用时出现的问题rvm reinsta
  • 如何在 DataGridViewImageColumn 中添加图像?

    我有一块田地DataGridViewImageColumn 对于字段的每一行 根据条件 我添加不同的图像 有人知道我如何在 Windows 窗体中执行此操作吗 if dgvAndon Rows e RowIndex Cells urgenc
  • WordPress 在管理中提供本机日期选择器吗?

    我正在开发一个插件 并在管理中提供一个由用户填写日期的字段 我想知道 WP Admin I 中是否有可用的本机日期选择器 我通常会包含一个小的 jQuery datepicker 脚本来执行此操作 但如果一个已经可用 我会更喜欢它 因为明显
  • 为什么 paramiko 偶尔会引发异常?

    为了方便起见 我编写了一个小包装类来登录远程主机 执行命令 结束检索数据 def MySSHClient def connect self remoteHost remotePort userName password self s par
  • 将文本区域包裹在 HTML 元素周围

    有什么方法可以将 textarea HTML 元素包裹在 HTML 元素周围吗 就我而言 我想将文本区域包裹在标签周围 这就是我试图实现的目标 Label name 其中 是文本区域 你不能使用HTML里面有标签
  • 如何在画布上移动图像?

    我有一个简单的射击画布游戏 运行得很好 但我的问题是我想要图像进行拍摄而不是蓝色矩形 那么我怎样才能让我的图像移动并拍摄掉下来的橙色矩形呢 这是我的代码 function initCanvas var ctx document getEle
  • 从参数设置 Rmarkdown 中的文档标题

    我有一个运行良好的 Rmarkdown 模板 并且对其进行了参数化 这样我就可以从不同的数据源生成同一报告的变体 但是 我想更改每种情况下的报告标题 我怎么做 这是我迄今为止拥有的 YAML 标头 title My Title author
  • 使用bash脚本修改配置文件

    我正在编写一个 bash 脚本来修改包含一堆键 值对的配置文件 我如何读取密钥并找到值并可能修改它 在黑暗中疯狂地修改单个值 sed c i s TARGET KEY 1 REPLACEMENT VALUE CONFIG FILE 假设目标
  • 哪个服务可以转换 AngularJS 中的元素和属性名称?

    AngularJS 在 HTML 标记和 JS 之间转换元素和属性名称 用驼峰命名法替换破折号 即 myComponent gt my component 反之亦然 哪个 AngularJS 服务或函数可以做到这一点 谢谢 尼基塔 执行此操
  • XCode“此时无法安装此应用程序。”

    在构建我的目标之一时 我对 XCode 遇到了一些小烦恼 构建成功 但是一旦在模拟器中启动它 我就会收到此提示 This app could not be installed at this time 仅当应用程序事先安装在模拟器上时才会发
  • 在 PHP 中将 SELECT 查询的结果打印为预格式化文本?

    我正在寻找一种简单快捷的方法来将 PHP 中的 MySQL SELECT 查询结果打印为预格式化文本 我想要的是能够将查询对象传递给函数并获得记录集的打印输出 就像命令行 MySQL 客户端在运行 SELECT 语句时所做的那样 下面是我希
  • 同一页面上有多个 ClojureScript 文件

    我有一个使用 Jasmine 来测试 JavaScript 的项目 我正在尝试切换到使用 ClojureScript 作为前端 我的project clj is like defproject myproject 0 1 0 SNAPSHO
  • 在 SQL Server 和 VB.Net 之间保持一致的日期时间格式的最佳方法

    我正在开发一个 VB Net 应用程序 该应用程序的操作严重依赖于日期和时间 由于如果应用程序日期格式与服务器日期格式不匹配 则日期格式可能会发生冲突 因此解决此问题的最佳实践是什么 我知道 SQL Serverdatetime格式取决于服