小编bib*_*hew的帖子

将月份和年份组合转换为 SQL 中的日期

我在不同的列中有月份和年份,我想在两点(即开始日期和结束日期)之间记录。我只有月和年。我发现的一个解决方案是将日期、月份组合转换为日期。假设我有

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 sql-server sql-server-2008

5
推荐指数
2
解决办法
5万
查看次数

将表达式转换为 smallint 数据类型的算术溢出错误

我是 SQL Server 的新手,这个问题可能会在这里重复。因为我还没有找到解决我的问题的方法。我想在这里发帖。所以这是我的问题

select(volume * speed)  from traffic_data_replica;
Run Code Online (Sandbox Code Playgroud)

我试图将两列的值相乘,两列的数据类型都是 smallint。我得到的错误是:

消息 8115,级别 16,状态 2,第 1 行
将表达式转换为 smallint 数据类型的算术溢出错误。

sql sql-server-2008

3
推荐指数
1
解决办法
1万
查看次数

在SQL中获取前一小时的数据

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)

sql sql-server sql-server-2008

0
推荐指数
1
解决办法
832
查看次数

标签 统计

sql ×3

sql-server-2008 ×3

sql-server ×2