连接日期和时间并将其格式化

时间:2019-08-05 17:43:36

标签: sql-server-2012

我有一个下面的数据集。

Create table #table
(
    id int,
    filedate int,
    filedate_time datetime2
)

Insert into #table
select 1,20190801,'8/1/2019 1:33:25 PM'
union
select 2,20190802,'8/2/2019 2:40:25 PM'
union
select 3,20190803,'8/3/2019 1:33:25 PM'

select 
    cast(filedate_time as time) as time_only,
    cast(filedate as varchar(8)) as filedate,
    concat(cast(filedate as varchar(8)), ' ', cast(filedate_time as time)) as concatfield
from 
    #table

我想将filedate_time中的时间与filedate中的日期连接起来,并将其格式化为yyyyMMdd-hh:mm:ss.fff。

我不能使用FORMAT函数,因为它说第一个参数不应为varchar。我无法将concat字段转换为datetime2。它给我错误,说不能将字符串转换为日期时间。我无法更改源数据类型。

有人可以帮助我获得正确的格式吗?

我希望concatfield为“ 20190805-3:50:55 PM”

1 个答案:

答案 0 :(得分:0)

正如@Larnu所说,您“应将格式留给表示层”,并将基本数据保留在数据库中。但是,如果由于某些原因您真的必须这样做,请尝试:

var errors = CodeMirror.lint.css(cm, options);