Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Pokazanie, w którym kwartale roku obrotowego znajduje się data

To powinno działać:-

SELECT
    MyDate,
    CASE
        WHEN MONTH(MyDate) BETWEEN 1  AND 3  THEN convert(char(4), YEAR(MyDate) - 1) + 'Q3'
        WHEN MONTH(MyDate) BETWEEN 4  AND 6  THEN convert(char(4), YEAR(MyDate) - 1) + 'Q4'
        WHEN MONTH(MyDate) BETWEEN 7  AND 9  THEN convert(char(4), YEAR(MyDate) - 0) + 'Q1'
        WHEN MONTH(MyDate) BETWEEN 10 AND 12 THEN convert(char(4), YEAR(MyDate) - 0) + 'Q2'
    END AS Quarter
FROM
    MyTable

Wyjście:-

MyDate        Quarter
----------    --------
2011-01-01    "2010Q3"
2011-04-01    "2010Q4"
2011-07-01    "2011Q1"
2011-10-01    "2011Q2"


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EF4.1:Czy można mieć relację zero lub jeden do zera lub jeden (0..1 do 0..1)?

  2. Paginacja w SQL - problem z wydajnością

  3. Obetnij tabelę w ramach transakcji

  4. SQL:Unia wielokątów

  5. Baza danych + uwierzytelnianie Windows + nazwa użytkownika/hasło?