none
SQL Query mit Zeiten RRS feed

  • Frage

  • Hallo

    gibt es wohl eine SQL Query die einem Zeiten von 00:00 bis 24:00 zurückgibt?

    Viele Grüße

    Hans-Werner

    Mittwoch, 15. Juli 2020 13:41

Antworten

  • select format(zeit,'hh:mm') klappt leider nicht.

    Es müssen groß geschrieben HH sein, damit das 24 Stunden Format ausgegeben wird, siehe FORMAT (Transact-SQL), Beispiel D

    with x (zeit) as (
    select CAST('00:00:00' as datetime2)
    union all 
    select DATEADD(MINUTE, 5, zeit) from x
    where zeit < CAST('23:58:59' as datetime2)
    ) 
    
    select format(zeit, 'HH:mm') from x
    order by zeit
    option (maxrecursion 0)


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert Hans-Werner11 Donnerstag, 16. Juli 2020 08:07
    Donnerstag, 16. Juli 2020 06:45

Alle Antworten

  • with x (zeit) as (
    select CAST('00:00:00' as datetime2)
    union all 
    select DATEADD(MINUTE, 1, zeit) from x
    where zeit < CAST('23:58:59' as datetime2)
    ) 
    
    select cast(zeit as time(0)) from x
    option (maxrecursion 0)


    Mittwoch, 15. Juli 2020 14:36
  • Vielen Dank,

    super.

    Habe in MINUTE 5 geändert für 5 Minuten Zeitspanne.

    Was muss man ändern damit die Sekunden weg sind?

    select format(zeit,'hh:mm') klappt leider nicht.

    Mittwoch, 15. Juli 2020 15:18
  • Schau mal hier:

    https://docs.microsoft.com/de-de/sql/t-sql/functions/datepart-transact-sql?view=sql-server-ver15

    Mittwoch, 15. Juli 2020 16:20
  • Danke für den Hinweis,

    ich weiss leider nicht wie man dies in der obigen Syntax und Schreibweise einabaut.

    So klappt es nicht

    with x (zeit) as ( select CAST('00:00:00' as datetime2) union all select DATEADD(MINUTE, 1, zeit) from x where zeit < CAST('23:58:59' as datetime2) )

    select cast(datepart(hh,zeit),datepart(n,zeit) as time(0)) from x

    option (maxrecursion 0)

    Donnerstag, 16. Juli 2020 06:36
  • select format(zeit,'hh:mm') klappt leider nicht.

    Es müssen groß geschrieben HH sein, damit das 24 Stunden Format ausgegeben wird, siehe FORMAT (Transact-SQL), Beispiel D

    with x (zeit) as (
    select CAST('00:00:00' as datetime2)
    union all 
    select DATEADD(MINUTE, 5, zeit) from x
    where zeit < CAST('23:58:59' as datetime2)
    ) 
    
    select format(zeit, 'HH:mm') from x
    order by zeit
    option (maxrecursion 0)


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert Hans-Werner11 Donnerstag, 16. Juli 2020 08:07
    Donnerstag, 16. Juli 2020 06:45