sql >> Database >  >> RDS >> Sqlserver

Haal alleen de datum van groepering op in de kolom DateTime in SQL Server

U kunt als volgt groeperen:

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

Ik heb dit in een scalaire, door de gebruiker gedefinieerde functie geplaatst om het gemakkelijker te maken:

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

Die je dan zo zou noemen:

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

Houd er rekening mee dat u mogelijk de waarden in de SELECT-component moet wijzigen, aangezien u nu op iets anders groepeert.



  1. Wat is de beste manier om een ​​gebruiker toe te staan ​​om on-the-fly kolommen aan zijn database toe te voegen?

  2. Query vertalen van Firebird naar PostgreSQL

  3. Probleem met Java-programma en mySQL-verbinding:geen geschikt stuurprogramma gevonden

  4. Fix "FOUT:elke INTERSECT-query moet hetzelfde aantal kolommen hebben" in PostgreSQL