从SQL Server返回新的日期时间选择日期时间
我有一个SQL Server表,它有一个从SQL Server返回新的日期时间选择日期时间,sql,datetime,sql-server-2012,Sql,Datetime,Sql Server 2012,我有一个SQL Server表,它有一个datetime列。对于SELECT语句,我需要做的是返回(我认为)一个计算列,该列从datetime列中提取时间,并将其与当前日期放在一起 所以在桌子上我可能有 [TargetPlot].[TargetDate] 2015-12-09 10:15:00 2015-12-09 10:30:00 2015-12-09 10:45:00 2015-12-09 11:00:00 2015-12-09 11:15:00 但是我需要返回的SELECT语句是(假设当
datetime
列。对于SELECT
语句,我需要做的是返回(我认为)一个计算列,该列从datetime
列中提取时间,并将其与当前日期放在一起
所以在桌子上我可能有
[TargetPlot].[TargetDate]
2015-12-09 10:15:00
2015-12-09 10:30:00
2015-12-09 10:45:00
2015-12-09 11:00:00
2015-12-09 11:15:00
但是我需要返回的SELECT
语句是(假设当前日期是12月11日)
谢谢你的建议
Andy您可以在适当调整后添加日期:
select cast(cast(getdate() as date) as datetime) + cast(targetdate as time)
SQL Server可以将时间添加到
datetime
值。我想您可能需要这样做
select (convert(varchar(10),getdate(),120))+' '+DATEADD(day, 0 - DATEDIFF(day, 0, column_name),Column_name) as SomeInput
从
TableName不确定为什么要强制转换或转换任何内容。。从那时起到现在,您应该能够以天为单位添加差异
DECLARE @Test TABLE (TargetDate DATETIME)
INSERT INTO @Test VALUES
('2015-12-09 10:15:00'),
('2015-12-09 10:30:00'),
('2015-12-09 10:45:00'),
('2015-12-09 11:00:00'),
('2015-12-09 11:15:00')
SELECT DATEADD(DAY, DATEDIFF(DAY, TargetDate, GETDATE()),TargetDate) FROM @Test
select (convert(varchar(10),getdate(),120))+' '+DATEADD(day, 0 - DATEDIFF(day, 0, column_name),Column_name) as SomeInput
DECLARE @Test TABLE (TargetDate DATETIME)
INSERT INTO @Test VALUES
('2015-12-09 10:15:00'),
('2015-12-09 10:30:00'),
('2015-12-09 10:45:00'),
('2015-12-09 11:00:00'),
('2015-12-09 11:15:00')
SELECT DATEADD(DAY, DATEDIFF(DAY, TargetDate, GETDATE()),TargetDate) FROM @Test