这是我使用的:
SELECT CAST(FLOOR(CAST(getdate() as FLOAT)) as DATETIME)
Run Code Online (Sandbox Code Playgroud)
我想可能会有更好更优雅的方式.
要求:
datetime类型,而不是字符串.好的 - 我问过几个人,必须有一个简单的方法来做到这一点....
declare @Date date
declare @Time time
declare @datetime datetime
select @Date = convert(Date,GetDate())
select @Time = convert(Time,GetDate())
select @Date, @Time, @Date + @Time (+ operator fails!)
Run Code Online (Sandbox Code Playgroud)
我真的必须:1)转换为字符串,然后转换为datetime字段?2)使用DateAdd和DatePart先添加小时,然后是分钟,然后是秒......
使用SQL Server 2008,此查询非常有用:
select CAST(CollectionDate as DATE), CAST(CollectionTime as TIME)
from field
Run Code Online (Sandbox Code Playgroud)
给我两个这样的列:
2013-01-25 18:53:00.0000000
2013-01-25 18:53:00.0000000
2013-01-25 18:53:00.0000000
2013-01-25 18:53:00.0000000
.
.
.
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用加号将它们组合成单个日期时间,如下所示:
select CAST(CollectionDate as DATE) + CAST(CollectionTime as TIME)
from field
Run Code Online (Sandbox Code Playgroud)
我查看了大约十个网站,包括这个网站上的答案(就像这个),他们似乎都同意加号应该有效,但我收到错误:
消息8117,级别16,状态1,行1
操作数数据类型日期对于添加运算符无效.
所有字段都是非零且非空.我也尝试过CONVERT函数并尝试将这些结果转换为varchars,同样的问题.这不会像我做的那么难.
有人可以告诉我为什么这不起作用?谢谢你的帮助.
我如何在SSIS中将这两个字段组合成一个datetime类型的列?两个源表都在datetime中,因此是目标表.
Dates
2009-03-12 00:00:00.000
2009-03-26 00:00:00.000
2009-03-26 00:00:00.000
Times
1899-12-30 12:30:00.000
1899-12-30 10:00:00.000
1899-12-30 10:00:00.000
Run Code Online (Sandbox Code Playgroud) 我在表中有四个字段:
date entered, time entered, date completed, time completed
Run Code Online (Sandbox Code Playgroud)
我想知道日期/时间ENTERED和日期/时间COMPLETED之间的区别
例如
date entered = 1/1/2001
time entered = 10:00
time completed = 1/2/2001
time completed = 11:00
Run Code Online (Sandbox Code Playgroud)
差异是25小时.
如何使用select语句执行此计算?
我刚试过这个:
DATEDIFF(hh,dateadd(hh,[Time Entered],[Date Entered]),dateadd(hh,[Time Completed],[Date Completed]) ) AS [Hours]
Run Code Online (Sandbox Code Playgroud)
并得到以下错误:
Msg 8116, Level 16, State 1, Line 2
Argument data type time is invalid for argument 2 of dateadd function.
Run Code Online (Sandbox Code Playgroud) 我必须像下面那样运行一个查询.它实际上更复杂,但这是重要的部分:
var results =
from b in _context.Bookings
where b.ScheduleDate.Add(b.StartTime) >= DateTime.UtcNow
select b;
Run Code Online (Sandbox Code Playgroud)
但它给出了以下错误:
LINQ to Entities无法识别方法'System.DateTime.Add方法(System.TimeSpan)',并且此方法无法转换为商店表达式.
我该如何解决这个问题?
提前致谢.
希望你能帮忙.我有一个Date列和一个时间列,我希望能够在select语句中将它们组合在一起,因此[Date and Time]只有一列.我尝试的所有东西似乎都将它们加在一起而不是组合/附加.
干杯,:)
我的SQL表中有两列.一个是DateTime,另一个是时间它们是格式,
DateTime - 2012-04-05 16:58:56.000时间 -21:30:00.00000
我需要编写一个Query,它将返回一个Column作为 - 2012-04-05 21:30:00.000
你能帮助我吗?