Alunos itano.souza Postado Novembro 15, 2022 Alunos Compartilhar Postado Novembro 15, 2022 Caros amigos (a), preciso criar uma tabela me traga Horas Calendários, ou seja às horas disponível no dia. Ex.: **************************** * Dia | Horas * * 1 | 24:00:00 * * 2 | 24:00:00 * ***************************** Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Solução Douglas Nascimento Postado Novembro 15, 2022 Alunos Solução Compartilhar Postado Novembro 15, 2022 3 horas atrás, itano.souza disse: Caros amigos (a), preciso criar uma tabela me traga Horas Calendários, ou seja às horas disponível no dia. Ex.: **************************** * Dia | Horas * * 1 | 24:00:00 * * 2 | 24:00:00 * ***************************** Você poderia criar uma tab dim_tempo aonde tem as horas e outra dim_calendario onde tem os dias e relacionar as duas na sua fato acredito que ficaria melhor 🙂 a seguir deixo um codigo M para criar uma tab dim_tempo veja se ajuda: let Lista = {0..86399}, ConverteParaTabela = Table.FromList(Lista, Splitter.SplitByNothing(), null, null, ExtraValues.Error), AlteraTipo = Table.TransformColumnTypes(ConverteParaTabela,{{"Column1", Int64.Type}}), AlteraNomeCol = Table.RenameColumns(AlteraTipo,{{"Column1", "Segundo"}}), ColDuracao = Table.AddColumn(AlteraNomeCol,"Duração", each #duration(0,0,0,[Segundo]), type duration), ColHora = Table.AddColumn(ColDuracao, "Hora", each #time(Duration.Hours([Duração]),Duration.Minutes([Duração]),Duration.Seconds([Duração])), type time), RemoveCols = Table.RemoveColumns(ColHora,{"Duração", "Segundo"}), ColHoraNum = Table.AddColumn(RemoveCols, "Hora Num", each Time.Hour([Hora]), Int64.Type), ColMinutoNum = Table.AddColumn(ColHoraNum, "Minuto Num", each Time.Minute([Hora]), Int64.Type), ColSegundoNum = Table.AddColumn(ColMinutoNum, "Segundo Num", each Time.Second([Hora]), Int64.Type), ColAMPM = Table.AddColumn(ColSegundoNum,"AMPM", each if [Hora Num] < 12 then "AM" else "PM", type text), ColHoraAMPM = Table.AddColumn(ColAMPM, "Hora AMPM", each if [Hora Num] = 0 then "12 AM" else if [Hora Num] >= 1 and [Hora Num] <= 11 then Number.ToText([Hora Num]) & " AM" else if [Hora Num] = 12 then "12 PM" else if [Hora Num] >= 13 then Number.ToText([Hora Num] - 12) & " PM" else "Unknown", type text), ColPeriodo = Table.AddColumn(ColHoraAMPM, "Período", each if [Hora Num] >= 0 and [Hora Num] <= 5 then "MADRUGADA" else if [Hora Num] >= 6 and [Hora Num] <= 11 then "MANHÃ" else if [Hora Num] >= 12 and [Hora Num] <= 17 then "TARDE" else if [Hora Num] >= 18 and [Hora Num] <= 23 then "NOITE" else "Unknown", type text ), ColPeriodoOrdem = Table.AddColumn(ColPeriodo, "Período Ordem", each if [Hora Num] >= 0 and [Hora Num] <= 5 then 1 else if [Hora Num] >= 6 and [Hora Num] <= 11 then 2 else if [Hora Num] >= 12 and [Hora Num] <= 17 then 3 else if [Hora Num] >= 18 and [Hora Num] <= 23 then 4 else 5, Int64.Type ) in ColPeriodoOrdem Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos itano.souza Postado Novembro 17, 2022 Autor Alunos Compartilhar Postado Novembro 17, 2022 Em 15/11/2022 em 00:36, Douglas Nascimento disse: Você poderia criar uma tab dim_tempo aonde tem as horas e outra dim_calendario onde tem os dias e relacionar as duas na sua fato acredito que ficaria melhor 🙂 a seguir deixo um codigo M para criar uma tab dim_tempo veja se ajuda: let Lista = {0..86399}, ConverteParaTabela = Table.FromList(Lista, Splitter.SplitByNothing(), null, null, ExtraValues.Error), AlteraTipo = Table.TransformColumnTypes(ConverteParaTabela,{{"Column1", Int64.Type}}), AlteraNomeCol = Table.RenameColumns(AlteraTipo,{{"Column1", "Segundo"}}), ColDuracao = Table.AddColumn(AlteraNomeCol,"Duração", each #duration(0,0,0,[Segundo]), type duration), ColHora = Table.AddColumn(ColDuracao, "Hora", each #time(Duration.Hours([Duração]),Duration.Minutes([Duração]),Duration.Seconds([Duração])), type time), RemoveCols = Table.RemoveColumns(ColHora,{"Duração", "Segundo"}), ColHoraNum = Table.AddColumn(RemoveCols, "Hora Num", each Time.Hour([Hora]), Int64.Type), ColMinutoNum = Table.AddColumn(ColHoraNum, "Minuto Num", each Time.Minute([Hora]), Int64.Type), ColSegundoNum = Table.AddColumn(ColMinutoNum, "Segundo Num", each Time.Second([Hora]), Int64.Type), ColAMPM = Table.AddColumn(ColSegundoNum,"AMPM", each if [Hora Num] < 12 then "AM" else "PM", type text), ColHoraAMPM = Table.AddColumn(ColAMPM, "Hora AMPM", each if [Hora Num] = 0 then "12 AM" else if [Hora Num] >= 1 and [Hora Num] <= 11 then Number.ToText([Hora Num]) & " AM" else if [Hora Num] = 12 then "12 PM" else if [Hora Num] >= 13 then Number.ToText([Hora Num] - 12) & " PM" else "Unknown", type text), ColPeriodo = Table.AddColumn(ColHoraAMPM, "Período", each if [Hora Num] >= 0 and [Hora Num] <= 5 then "MADRUGADA" else if [Hora Num] >= 6 and [Hora Num] <= 11 then "MANHÃ" else if [Hora Num] >= 12 and [Hora Num] <= 17 then "TARDE" else if [Hora Num] >= 18 and [Hora Num] <= 23 then "NOITE" else "Unknown", type text ), ColPeriodoOrdem = Table.AddColumn(ColPeriodo, "Período Ordem", each if [Hora Num] >= 0 and [Hora Num] <= 5 then 1 else if [Hora Num] >= 6 and [Hora Num] <= 11 then 2 else if [Hora Num] >= 12 and [Hora Num] <= 17 then 3 else if [Hora Num] >= 18 and [Hora Num] <= 23 then 4 else 5, Int64.Type ) in ColPeriodoOrdem obrigado, irei testar agora. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Douglas Nascimento Postado Novembro 17, 2022 Alunos Compartilhar Postado Novembro 17, 2022 19 horas atrás, itano.souza disse: obrigado, irei testar agora. Deu certo dessa forma? @itano.souza Link para o comentário Compartilhar em outros sites More sharing options...
0 Ayumi Postado Dezembro 28, 2022 Compartilhar Postado Dezembro 28, 2022 @itano.souza Olá tudo bem? Já resolveu ou ainda está com problemas? Por gentileza Define a Melhor resposta para o tópico, para isso basta ir naquela que mais te ajudou e clicar em uma das duas opções conforme print: Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
itano.souza
Caros amigos (a), preciso criar uma tabela me traga Horas Calendários, ou seja às horas disponível no dia.
Ex.:
****************************
* Dia | Horas *
* 1 | 24:00:00 *
* 2 | 24:00:00 *
*****************************
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Faça login para comentar
Você vai ser capaz de deixar um comentário após fazer o login
Entrar Agora