Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Вземете само датата от групирането в изберете от колоната DateTime в SQL Server

Можете да групирате по това:

cast(floor(cast(AutoShipItems.NextOrderDate as float)) as datetime)

Сложих това в скаларна дефинирана от потребителя функция, за да улесня:

create function [dbo].[xfn_TrimTimeFromDateTime]
(
    @date as datetime
)
returns datetime with schemabinding as
begin
    --- Convert to a float, and get the integer that represents it.
    --- And then convert back to datetime.
    return cast(floor(cast(@date as float)) as datetime)
end

Което след това бихте нарекли така:

GROUP BY
    AutoShipItems.CustomerID, 
    dbo.xfn_TrimTimeFromDateTime(AutoShipItems.NextOrderDate), 
    Customer.FirstName, Customer.LastName, Customer.EmailAddress

Имайте предвид, че може да се наложи да промените стойностите в клаузата SELECT, тъй като сега групирате по нещо различно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Двусмислена грешка в името на колоната на един конкретен сървър

  2. Вземете предишния и следващия ред от редове, избрани с условия (WHERE).

  3. Невъзможност за отдалечен достъп до екземпляр на SQL Server 2008 R2

  4. Драйверът Go with SQL Server не може да се свърже успешно, неуспешно влизане

  5. персонализиране на sql формат за дата и час как?