这里我试图在转换后将nvarchar值插入datetime列,我想要做的是,我需要按照这种格式插入数据“18-05-2018 11:09:31 AM” ,但就我而言,它会返回“2018-05-18 11:09:31.000”
代码:
DECLARE @SESSION_START_TIME NVARCHAR(100) = '18-05-2018 12:12:10 PM';
INSERT INTO EC_USER_SESSION (SESSION_START_DATE)
VALUES(convert(datetime,@SESSION_START_TIME,105))
我认为转换错了,任何人都可以帮我解决这个问题。
答案 0 :(得分:1)
SELECT
RIGHT('00'+ CAST(DAY(@date) AS NVARCHAR),2) + '-' +
RIGHT('00'+ CAST(MONTH(@date) AS NVARCHAR),2) + '-' +
CAST(YEAR(@date) AS NVARCHAR) + ' ' +
CAST(CONVERT(TIME,@date) AS NVARCHAR)
答案 1 :(得分:0)
日期&时间格式在内部存储为整数,它与日期'01 / 01/1900'的差异。你可以显示&将其操作为不同的格式,但未格式化的select语句将仅以“2018-05-18 11:09:31.000”格式显示。
如果要以指定格式存储,则需要在表格中将datetime列更改为Nvarchar。
将查询用于您指定的格式。
SELECT Convert(VARCHAR, convert(datetime,@SESSION_START_TIME,105),105)+ ' ' +
RIGHT(Convert(VARCHAR, convert(datetime,@SESSION_START_TIME,105), 22) ,11)