Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm thế nào tôi có thể đánh giá bảng này?

đây là một số mã mẫu giải thích cách bạn có thể sử dụng câu lệnh CASE, bạn sẽ có thể tìm ra cách thực hiện các thay đổi trong mã của mình

--sample data
create table #temp (SomeDate datetime)
insert #temp values ( '2009-05-12 11:13:19.667')
insert #temp values ( '2009-05-12 11:12:19.667')
insert #temp values ( '2009-05-12 11:33:19.667')
insert #temp values ( '2009-05-12 11:43:19.667')
insert #temp values ( '2009-05-12 11:03:19.667')
insert #temp values ( '2009-05-12 11:53:19.667')
insert #temp values ( '2009-05-12 11:53:19.667')
insert #temp values ( '2009-05-12 11:23:19.667')

insert #temp values ( '2009-05-12 12:13:19.667')
insert #temp values ( '2009-05-12 12:12:19.667')
insert #temp values ( '2009-05-12 13:33:19.667')
insert #temp values ( '2009-05-12 13:43:19.667')
insert #temp values ( '2009-05-12 14:03:19.667')
insert #temp values ( '2009-05-12 14:53:19.667')
insert #temp values ( '2009-05-12 15:53:19.667')
insert #temp values ( '2009-05-12 15:23:19.667')



--this is the grouping/count query
select count(*),case when datepart(mi,Somedate) < 30 
then dateadd(hh, datediff(hh, 0, Somedate)+0, 0)
 else dateadd(mi,30,dateadd(hh, datediff(hh, 0, Somedate)+0, 0)) end
from #temp
group by case when datepart(mi,Somedate) < 30 
then dateadd(hh, datediff(hh, 0, Somedate)+0, 0)
 else dateadd(mi,30,dateadd(hh, datediff(hh, 0, Somedate)+0, 0)) end

để xem dữ liệu thực sự trông như thế nào

select Somedate,case when datepart(mi,Somedate) < 30 
then dateadd(hh, datediff(hh, 0, Somedate)+0, 0)
 else dateadd(mi,30,dateadd(hh, datediff(hh, 0, Somedate)+0, 0)) end
from #temp

đầu ra

vCount  time
4   2009-05-12 11:00:00.000
4   2009-05-12 11:30:00.000
2   2009-05-12 12:00:00.000
2   2009-05-12 13:30:00.000
1   2009-05-12 14:00:00.000
1   2009-05-12 14:30:00.000
1   2009-05-12 15:00:00.000
1   2009-05-12 15:30:00.000


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm chuỗi T-SQL:sự khác biệt giữa việc sử dụng Trái / Phải và Chuỗi con và hành vi lạ

  2. Nhận số chữ số sau dấu thập phân của dấu phẩy (có hoặc không có phần thập phân)

  3. Kết hợp giá trị trường thành chuỗi trong SQL Server

  4. Tôi có cần chỉ định BẬT XÓA KHÔNG CÓ HÀNH ĐỘNG nào trên Khóa ngoại của mình không?

  5. CHỌN hàng có thời gian từ 30 phút trở xuống?