Sql 成功了,明白了,不,我真的做到了。对不起,我应该澄清一下。但是不管我使用哪种代码,它仍然返回相同的(2018-10-14 00:00:00.000)。那么你也想要添加时间吗?就是这样。我不得不在跑步时间上跑来跑去,让它在13:00显示出来,但这给了我95%
Sql 成功了,明白了,不,我真的做到了。对不起,我应该澄清一下。但是不管我使用哪种代码,它仍然返回相同的(2018-10-14 00:00:00.000)。那么你也想要添加时间吗?就是这样。我不得不在跑步时间上跑来跑去,让它在13:00显示出来,但这给了我95%,sql,sql-server,tsql,Sql,Sql Server,Tsql,成功了,明白了,不,我真的做到了。对不起,我应该澄清一下。但是不管我使用哪种代码,它仍然返回相同的(2018-10-14 00:00:00.000)。那么你也想要添加时间吗?就是这样。我不得不在跑步时间上跑来跑去,让它在13:00显示出来,但这给了我95%的需要。谢谢你………@Doctorj77谢谢你的代表。顺便说一句,如果这是一些报告?有时,最好将它们转换为日期或时间类型。然后让格式化在前端处理。对于日期戳来说,这很简单,只是不要将日期强制转换为varchar。时间部分可以铸造成时间类型。顺便
成功了,明白了,不,我真的做到了。对不起,我应该澄清一下。但是不管我使用哪种代码,它仍然返回相同的(2018-10-14 00:00:00.000)。那么你也想要添加时间吗?就是这样。我不得不在跑步时间上跑来跑去,让它在13:00显示出来,但这给了我95%的需要。谢谢你………@Doctorj77谢谢你的代表。顺便说一句,如果这是一些报告?有时,最好将它们转换为日期或时间类型。然后让格式化在前端处理。对于日期戳来说,这很简单,只是不要将日期强制转换为varchar。时间部分可以铸造成时间类型。顺便说一句,还有一个函数,如果转换失败,它将返回NULL(而不是给出错误)。@Doctorj77我不得不调整一下计算时间。因为我意识到,对于INT或BIGINT,1000以下没有前零,就是这样。我不得不在跑步时间上跑来跑去,让它在13:00显示出来,但这给了我95%的需要。谢谢你………@Doctorj77谢谢你的代表。顺便说一句,如果这是一些报告?有时,最好将它们转换为日期或时间类型。然后让格式化在前端处理。对于日期戳来说,这很简单,只是不要将日期强制转换为varchar。时间部分可以铸造成时间类型。顺便说一句,还有一个函数,如果转换失败,它将返回NULL(而不是给出错误)。@Doctorj77我不得不调整一下计算时间。因为我意识到,对于INT或BIGINT,1000以下没有前零。
Select Schedule ID , Job_Name , next_run_date , next_run_time
CONVERT(varchar(10),CONVERT(date,[next_run_date],110),110) AS 'Next Run'
CONVERT(date,CONVERT(varchar(10),[next_run_date]),110) AS 'Next Run'
DECLARE @Date INT=20181014
DECLARE @Time INT=123456
SELECT CONVERT(DATE,
SUBSTRING(CONVERT(VARCHAR(20),@Date),1,4)+'/'+
SUBSTRING(CONVERT(VARCHAR(20),@Date),5,2)+'/'+
SUBSTRING(CONVERT(VARCHAR(20),@Date),7,2)
) AS [Date]
SELECT CONVERT(TIME,
SUBSTRING(CONVERT(VARCHAR(20),@Time),1,LEN(CONVERT(VARCHAR(20),@Time))-4)+':'+
SUBSTRING(CONVERT(VARCHAR(20),@Time),LEN(CONVERT(VARCHAR(20),@Time))-3,2)+':'+
SUBSTRING(CONVERT(VARCHAR(20),@Time),LEN(CONVERT(VARCHAR(20),@Time))-1,2)
) AS [Time]
CONVERT(VARCHAR(10), CAST(CAST([next_run_date] AS VARCHAR(8)) AS DATE), 110)
STUFF(CAST(FORMAT([next_run_time],'000000') AS VARCHAR(4)),3,0,':')
DECLARE @Table TABLE (next_run_date INT, next_run_time INT);
INSERT INTO @Table (next_run_date, next_run_time) VALUES
(20180901, 13500)
,(20181015, 134200)
;
SELECT
CONVERT(VARCHAR(10), CAST(CAST([next_run_date] AS VARCHAR(8)) AS DATE), 110) AS [Next Run Date],
STUFF(CAST(FORMAT([next_run_time],'000000') AS VARCHAR(4)),3,0,':') AS [Next Run Time]
FROM @Table
Next Run Date Next Run Time
------------- -------------
09-01-2018 01:35
10-15-2018 13:42