我需要获取仅包含日期的DATETIME
列(Column A
VARCHAR(5)
Column B
1330
DATETIME
DATEDIFF
例如,Column A
contains2013-07-01 00:00:00.000
和Column B
contains 1330
。结果应该是2013-07-01 13:30:00.000
。
编辑:只是为了澄清事情,这是一个以这种方式存储数据的现有数据库,完全改变事物的工作方式以使其以正确的方式存储数据超出了我的项目范围。如果可以,我会,但我不能,所以我被多列困住了。此外,B 列中的数据将始终为 4 位时间,因为输入页面已检查以确保时间是有效的军事时间格式。
这也将处理 < 10 AM 不包含所有 4 位数字的值。(此外,该列可能应该是 CHAR(4) 而不是 VARCHAR(5) - 或者更好的是,停止分离这些并首先存储适当的日期时间值)。
我假设
:
ColumnB 中不存在 a,尽管您可以在需要时使用替换来剥离它们。如果您的 ColumnB 曾经包含秒,还有第二个东西。如果您使用的是 SQL 2012,则可以使用此函数:
DATETIMEFROMPARTS(年、月、日、时、分、秒、毫秒)
它返回一个日期时间。
你也许可以用更少的步骤来做到这一点,但你明白了。