我在不同的列中有月份和年份,我想在两点(即开始日期和结束日期)之间记录。我只有月和年。我发现的一个解决方案是将日期、月份组合转换为日期。假设我有
Start month : 3 Start year : 2010
End month : 6 End year : 2013
Run Code Online (Sandbox Code Playgroud)
我想将它们转换为
start date = 01-03-2010
End date = 31-06-2013
Run Code Online (Sandbox Code Playgroud)
有什么解决办法吗?
我是 SQL Server 的新手,这个问题可能会在这里重复。因为我还没有找到解决我的问题的方法。我想在这里发帖。所以这是我的问题
select(volume * speed) from traffic_data_replica;
Run Code Online (Sandbox Code Playgroud)
我试图将两列的值相乘,两列的数据类型都是 smallint。我得到的错误是:
消息 8115,级别 16,状态 2,第 1 行
将表达式转换为 smallint 数据类型的算术溢出错误。
Hai们我想用SQL中的前一小时数据.
我找到了这样的东西
DATEPART(hh,GETDATE())-1 –>
Run Code Online (Sandbox Code Playgroud)
但它有一些问题,因为我的日期格式是24小时.当时间在00.00.00-00.59.59之间时,它将给出-ve value(-1).我应该得到23作为价值.有什么建议?这就是我做的
DECLARE @hourlyaggregatedvolume smallint
DECLARE @hourlyaggregatedspeed smallint
DECLARE @hourlyaggregatedoccupancy float
DECLARE @hourlyaggregatedheadway float
DECLARE @trafficdatadate datetime
DECLARE @closeststationname nvarchar(100) = 'E100 1001'
DECLARE @accidentdate nvarchar(10) = '2014-02-17'
DECLARE @accidenttime nvarchar(10) = '01:10:00'
SELECT
@hourlyaggregatedvolume = aggregated_volume,
@hourlyaggregatedspeed =aggregated_speed,
@hourlyaggregatedheadway = aggregated_headway,
@hourlyaggregatedoccupancy = aggregated_occupancy,
@trafficdatadate = [date]
FROM dbo.traffic_data_aggregated_hourly
WHERE station = @closeststationname
AND CONVERT(DATE,[date]) = @accidentdate
AND period = CASE WHEN SUBSTRING (@accidenttime,1,2) - 1 = -1 THEN 23
ELSE SUBSTRING (@accidenttime,1,2) - 1 …Run Code Online (Sandbox Code Playgroud)