在 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 之间保持一致的日期时间格式的最佳方法 的相关文章

  • 通过 VB.NET 和 C# 中的 Ref 参数

    我有与传递参数 byRef 相关的问题 我有基于 VB NET 的类库 其中一些函数是使用 byref 参数类型定义的 这些参数是父类对象 当我尝试调用此函数并在 byref 参数中传递子类对象时 它在 VB NET 中工作 但我无法在 C
  • 使用实用程序批量复制将所有表从 SQL Server 数据库导出到文件中

    我想将数据库中的所有表 bcp 到文件中 SELECT EXEC xp cmdshell bcp bcp QUOTENAME DB NAME database name QUOTENAME SCHEMA NAME SCHEMA ID sch
  • 比较两个字符串ArrayList

    我有两个数组列表 dim Colors1 New ArrayList Colors1 Add Blue Colors1 Add Red Colors1 Add Yellow Colors1 Add Green Colors1 Add Pur
  • 覆盖乔达一周的第一天?

    是否有可能覆盖乔达弱的第一天sunday 因为 Joda 使用Monday作为一周的第一天 如果有办法的话 谁能解释一下 我在 SOF 中提到了以下主题 乔达时间 一周的第一天 https stackoverflow com questio
  • SQL 选择另一列中具有最大值的列

    我有一个看起来像这样的表 Name Group Value A 1 0 B 1 2 C 1 5 D 2 6 E 2 0 F 3 3 我想选择每组中具有最大值的名称 例如 有 3 个组 因此结果将是 Name C because it has
  • 为 ASP.NET MVC 实现自定义登录

    我是 ASP NET MVC 的新手 需要一些关于如何实现以下内容的建议 该站点是一个使用率很高的站点 内部 内联网 约有 200 个用户 我们使用表单身份验证来访问 SQL Server DB 不是 Windows 集成 有些操作受到保护
  • 使用icalendar解析日期并与python日期时间进行比较

    我有一个 ics 文件 我想从中提取今天发生的所有事件 我认为我在将 icalendar DTSTART 和 DTEND 转换为 python 日期时间时遇到问题 我尝试按照以下位置的文档进行操作icalendar readthedocs
  • BCP 实用程序:“复制方向必须是‘输入’、‘输出’或‘格式’”

    当我为可信连接运行 BCP 命令时 出现以下错误 复制方向必须是 输入 输出 或 格式 我尝试搜索 MSDN 其中指定传递的服务器名可能不正确 我正在尝试的命令是 bcp SQL database TABLE1 in FileSERVER
  • Python 3.6 DateTime Strptime 返回错误,而 Python 3.7 运行良好

    我刚刚为日期数据创建了一个数据类型 它返回一个datetime datetime object 这是代码 import datetime class Date def new cls dateTime args kwargs return
  • 自动加载 linq2entities 中的关系

    当我的模型中的两个实体之间存在关系时 组成员 1 用户 并尝试使用 LINQ 从该关系中选择项目 从 user GroupMember 中的实体选择实体 除非我首先使用以下语句加载关系 否则我总是得到空结果 user GroupMember
  • 管理员无法管理 SQL Server 报告服务

    我正在 SQL Server 2008 Standard 上运行 SQL Server Reporting Services 并尝试使网页正常工作 我需要做什么才能获得 RS 报表管理器 报表服务连接 首先将我视为管理员 以便我可以更改我的
  • 如何将可变数量的参数传递给 SQL Server 存储过程?

    我将 SQL Server 2005 用于我的小型 Web 应用程序 我想将参数传递给 SP 但有一个条件 可以不时更改的参数数量 想一想 这次我传递姓名和地址 下次我传递姓名 地址 该参数范围可以是 1 30 您使用默认参数声明该过程 并
  • 从 SQL XML 列中的元素获取属性名称

    对于此 xml 在 SQL 2005 XML 列中
  • PHP 字节数组转 Base64(来自 Mssql 的字节数组)

    我在表上使用 Mssql 和图像 例如 0xFFD8FFE000104A46494 我觉得是这样的字节数组 我想用 PHP 将其更改为图像 我试试这个 img src 但图像不显示 代码演示 http sandbox onlinephpfu
  • SQL Server 2008 R2 中的字符映射/逐字符搜索和替换

    我在 SQL Server 2008 R2 上运行 我们在这里有一个要求 即我需要创建将某些英文字符替换为以前在遗留系统中使用的区域设置语言字符 为此 我可能会使用 T SQL 中的替换函数 但在我的实践中 我们会逐个字符地替换 例如 AS
  • 我们可以在 Azure 上的 T-SQL 过程中创建数据库范围的凭据吗

    我们可以在 Azure SQL 上的 T SQL 过程中为共享访问签名创建数据库范围的凭据吗 我们正在尝试从存储在 Azure blob 上的 csv 文件批量插入数据 以下是步骤 使用 JAVA 创建 SAS 凭证 Java将调用存储过程
  • 计算日期范围内的天数以及可能重叠的排除集

    给定以下示例查询 考虑到这些范围可能具有重叠的日期 并且还给出了一组要排除的范围 那么计算日期范围内的总天数的合理且高效的方法是什么 更简单地说 我有一个表 其中包含一组关闭计费的日期范围 我从一个日期范围 例如 Jan1 Jan31 开始
  • 如何将 POST 请求内容保存为 .NET 中的文件 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一个客户端应用程序POST请求a
  • 条件聚合性能

    让我们有以下数据 IF OBJECT ID dbo LogTable U IS NOT NULL DROP TABLE dbo LogTable SELECT TOP 100000 DATEADD day ABS CHECKSUM NEWI
  • SQL Server 2005 命名实例端口问题

    我在一台服务器上有 4 个不同的 SQL Server 2005 命名实例 用于测试目的 服务器上没有默认实例 因为我最终需要允许跨防火墙与这些实例进行通信 所以我已将每个实例的端口设置为静态侦听服务器的所有 IP Edit TCP IP

随机推荐

  • 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格式取决于服