【发布时间】:2016-10-17 16:11:35
【问题描述】:
为简单起见,我在一个表中有两列
DATE = DateTime2(7) 2016-06-16 00:00:00.000000
TIME = Varchar(5) 09:00
我已经尝试了如下示例中所示的几种强制转换和转换,以尝试将它们组合到一个新列中,如 2016-06-16 09:00:00.000000 格式的 DateTime: p>
convert(datetime,
convert(varchar(10),DATE, 121) + ' ' + convert(varchar(8),TIME, 108))
as 'DateTime'
但我不断收到此错误:
从字符串转换日期和/或时间时转换失败。
感谢任何帮助。
【问题讨论】:
-
varchar(5)如何存储 15 个字符? -
抱歉,我会修改它。
-
如何将(显然)逻辑上的单个值分成两个单独的列“为简单起见”。当然,它引入了更多问题 - 首先是重新组合它们(如这里)。其次,你在那个时间列上有一个像样的
CHECK约束吗?确保它不包含25:73或today? -
谢谢达米安。我无法控制数据,因为它是我们可以通过 SQL 访问的外部系统,因此我需要在一列中使用它。还对数据输入进行了检查,以阻止用户以不正确的格式输入数据。
标签: sql sql-server-2008 datetime