SQL 错误:将 varchar 数据类型转换为 datetime 数据类型导致值超出范围

2023-12-07

进入的数据:

<F1>000001234</F1>
<F2>133228579</F2>
<F3>2011-05-25</F3>
<F4>21-332211</F4>
<F5>TxtMail</F5>
<F6/>
<F7>26/04/2011</F7>
<F8>00:09:13</F8>
<F9>0:00</F9>
<F10/>
<F11/>
<F12>Text Service</F12>
<F13>0294443333</F13>
<F14>TXT</F14>
<F15>FR</F15>
<F16>0.17</F16>

存储过程的相关部分:

@F1     VARCHAR(24) = NULL, --AccountNumber
@F2     VARCHAR(24) = NULL, --InvoiceNumber
@F3     VARCHAR(24) = NULL, --InvoiceDate
@F4     VARCHAR(24) = NULL, --CallerNumber
@F5     VARCHAR(10) = NULL, --Service
@F6     VARCHAR(10) = NULL, --
@F7     varchar(24) = NULL, --CallDate
@F8     VARCHAR(24) = NULL, --CallTime
@F9     VARCHAR(50) = NULL, --Duration
@F10    VARCHAR(50) = NULL, --
@F11    VARCHAR(10) = NULL, --
@F12    VARCHAR(24) = NULL, --Network
@F13    VARCHAR(24) = NULL, --CallingNumber
@F14    VARCHAR(10) = NULL, --Type
@F15    VARCHAR(10) = NULL, --TypeName
@F16    MONEY       = NULL, --Amount

DECLARE @Date VARCHAR(20)
SET @Date = RIGHT(@F7,4)+'/'+SUBSTRING(@F7,4,2)+'/'+LEFT(@F7,2)

-- Combine the date and time into a datetime data type
-- For Time 
DECLARE @time DATETIME
SET @time =  CONVERT(DATETIME, @Date + ' ' + @F8)

错误:将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。

这是 CONVERT(DATETIME) 的唯一调用,我不使用 CAST

如果我直接传入数据,则会插入该行。如果我运行存储过程,它就会超出范围。


SQL Server 中使用的安全日期时间字符串格式是

YYYYMMDD HH:MM:SS or YYYY-MM-DDTHH:MM:SS.

如果出现以下情况,您的转换将会失败设置日期格式是 dmy。设置语言会自动为您设置日期格式。我认为两者german and norwegian使用 dmy.

这将失败:

set language norwegian

declare @F7 varchar(10) = '26/04/2011'
declare @F8 varchar(10) = '00:09:13'

DECLARE @Date VARCHAR(20)
SET @Date = RIGHT(@F7,4)+'/'+SUBSTRING(@F7,4,2)+'/'+LEFT(@F7,2)

DECLARE @time DATETIME
SET @time =  CONVERT(DATETIME, @Date + ' ' + @F8)

无论语言/日期格式设置如何,都应这样做(使用 YYYY-MM-DDTHH:MM:SS)以确保安全。

declare @F7 varchar(10) = '26/04/2011'
declare @F8 varchar(10) = '00:09:13'

DECLARE @Date VARCHAR(20)
SET @Date = RIGHT(@F7,4)+'-'+SUBSTRING(@F7,4,2)+'-'+LEFT(@F7,2)

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

SQL 错误:将 varchar 数据类型转换为 datetime 数据类型导致值超出范围 的相关文章

随机推荐

  • 计算Java中HashMap的开销

    假设我在哈希图中存储 1000 个对象 这个哈希图经过扩展 允许我将三维坐标映射到存储在其中的对象 里面的物体有固定的大小 哈希键是一个长整数 我将如何 以数学方式 计算出该结构的可能开销 它是否足够重要 例如 如果内部数据约为 256mb
  • 从 vba 到平面文件的 Unicode 字符串

    我想将 excel vba 宏中的 unicode 字符串存储在 Windows 盒子上的平面文件中 该宏将普通字符串转换为 unicode 表示形式 需要将其存储在文件中并稍后检索 如前所述 您可以使用 Microsoft 脚本运行时 s
  • 根据屏幕尺寸更改列数

    我正在尝试 Bootstrap 我想知道如何根据屏幕尺寸调整列数 我从 Bootstrap CSS 教程中看到了这个 div class row div class col xs 12 col md 8 col xs 12 col md 8
  • ASP.NET Web 项目中的 Razor 视图

    我目前正在研究视图引擎 Razor Views 对我来说变得非常有趣 我正在开发一个 ASP NET 4 0 Web 表单应用程序 我能找到的 Razor 视图示例主要是 MVC 应用程序 是否可以将 Razor 视图集成到 Web 表单应
  • Java - “字符串索引超出范围”异常

    我编写这个小函数只是为了练习 但是抛出了一个异常 字符串索引超出范围 29 我不知道为什么 我知道这不是编写此函数的最佳方法 我可以使用正则表达式吗 这是代码 public String retString String x int j 0
  • 使用函数引用在 Kotlin 中重写 Java 代码发生 SAM 类型冲突

    我有一个使用方法引用的示例 Java 代码 我想将其重写为 Kotlin Java版本使用方法参考 解决方案简短明了 但另一方面 我无法在 Kotlin 中使用方法引用 我设法编写的唯一版本是下面的版本 这好像是Function3 s St
  • 从列表列表中删除所有出现的特定值 python

    据我所知 这个问题 令人惊讶 以前没有被问过 除非我由于缺乏经验而未能发现同等的问题 类似的问题还有 被问及一维列表 我有一个 list A 其中包含 int 值 我想从 list of lists 中删除 List A 中指定的所有值的所
  • 让 Google 地图标记在单击时显示特定的 div

    我对 javascript 还很陌生 我正在边学习边学习 如果这很简单 我很抱歉 我所拥有的是地图上显示的一堆标记 这些标记是从数组加载并使用函数显示的 我想要做的是弹出一个与单击的标记相关的特定 div 单击另一个标记时 前一个 div
  • 在 Seam 2.3 中配置 Infinispan CacheProvider

    我正在尝试迁移我的 Seam 2 3 应用程序以使用 Infinispan 在 JBoss AS7 中进行缓存 我查看了Seam 2 3 发行版中的博客示例 并将jGroupsConfig xml 和infinispan xml 文件复制到
  • Android 应用程序中的图像查看器

    我正在尝试启动一个使用内置 Android 图像查看器写入我的应用程序目录的图像 该图像已写入应用程序目录的不同部分 当得到如下文件时 super getFilesDir current png File exists 返回 true 我如
  • @Html.DropDownListFor;如何在DDL中为每个项目设置不同的背景颜色?

    我有一个下拉列表 html DropDownListFor 其中显示颜色名称 我想显示具有单独背景颜色的每个项目 就像 项目 绿色 应该在绿色背景中 而 黄色 应该在绿色背景中在黄色背景中 我怎样才能实现这个目标 不要忘记 您始终可以在视图
  • Google抓取503服务不可用

    当我在服务器上使用 wget curl 或 python 抓取 google 搜索引擎时 遇到了一个非常奇怪的问题 Google 将我重定向到以以下内容开头的地址 ipv4 ipv6 google fr sorry IndexRedirec
  • 如何通过Eclipse获取类文件?

    我在Eclipse中编写了一个应用程序 该应用程序已成功编译并运行 之后 在相应的目录中我找到了 java和 class文件 然后我删除了 class 文件 现在我不知道如何恢复它 Eclipse 写信给我 未编写类文件 项目可能不一致 如
  • 是否可以在没有 git clone 的情况下获取远程 git 存储库的提交日志/消息

    是否可以在不使用 git clone 的情况下获取远程 git 存储库的提交日志 消息 我正在使用的 git 存储库很大 即使我使用 depth 1 运行 git clone 仍然需要一些时间才能克隆它 我正在寻找这样的东西 git 远程日
  • html5 音频。如何获取比特率

    我正在为 google chrome 编写一个扩展 我有一个情况 我有一个 mp3 文件的链接 我可以播放它 我可以提取它的持续时间 但我如何计算比特率呢 通过某些属性可以吗 或者通过使用文件大小进行一些计算 如果是第二个 如何获取文件大小
  • 获取 iPhone 上当前 Wi-Fi 接入点的 IP 地址?

    我正在尝试从我的iPhone到我计算机上同一网络上运行的套接字服务器 我怎样才能得到当地的IP地址运行套接字服务器的计算机的名称 include
  • java尝试在通知中进行变异

    我有两个 swing ui 表单和一个它们都查看的模块 每个 ui 都添加一个监听器来监听属性的变化 并在发生更改时更新其自己的文本字段 基本上 他们都应该更新模块并从中更新 有没有一种简单的方法可以在没有绑定框架的情况下做到这一点 这是我
  • HTML 中的 PHP 无法使用 Flask 运行

    我最近刚刚开始使用 Flask 以前没有 html php 经验 所以如果这是天真的 请原谅我 我试图在 html 文件中使用一些 php 来改进我构建的 web 应用程序 但甚至无法让最简单的测试用例发挥作用 例如 取一个测试用例这个网站
  • 1980 年以来计算领域的重大新发明

    Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 这个问题源于comments关于过去 50 年左右计算领域的不同进展 其他一些参与者要求我向整个论坛提出这个问题 这里的基本思想不
  • SQL 错误:将 varchar 数据类型转换为 datetime 数据类型导致值超出范围

    进入的数据