Saber Dia Útil usando Select, tem como?
Olá colegas, estou postando aqui, pois creio que se houver como, deve servir pra qualquer banco.
A dúvida é a seguinte, preciso fazer uma instrução onde a mesma compare a data informada e se a mesma não cair em dia útil ela seja incrementada até ser.
em Delphi faço isso:
como fazer usando SQL? :idea: :arrow:
A dúvida é a seguinte, preciso fazer uma instrução onde a mesma compare a data informada e se a mesma não cair em dia útil ela seja incrementada até ser.
em Delphi faço isso:
[color=orange:7f676d02dc] Case dayOfWeek(StrToDate(cdsTemp.FieldByName(´DATPAG´).AsString)) of
1: dm.cdsHeader.FieldByName(´DATPAG´).AsDateTime := (dm.cdsHeader.FieldByName(´DATPAG´).AsDateTime+2); // ´Domingo´
7: dm.cdsHeader.FieldByName(´DATPAG´).AsDateTime := (dm.cdsHeader.FieldByName(´DATPAG´).AsDateTime+3); // ´Sabado ´
end;[/color:7f676d02dc]
como fazer usando SQL? :idea: :arrow:
Macario
Curtidas 0
Respostas
Aasn
30/01/2006
Olá Macario,
Para vc saber o dia da semana através de um select basta o seguinte:
[]´s
AASN
Para vc saber o dia da semana através de um select basta o seguinte:
select Extract(WeekDay from CampoData) from SuaTabela
[]´s
AASN
GOSTEI 0
Macario
30/01/2006
Ola [b:2e1630b3a4]AASN[/b:2e1630b3a4], bom dia.
Teste sua dica no Query Analyzer mas não funcionou
Outro ponto se eu utilizar esta opção terei que estar fazendo isso em uma SP?
Teste sua dica no Query Analyzer mas não funcionou
Incorrect syntax near the keyword ´from´.
Outro ponto se eu utilizar esta opção terei que estar fazendo isso em uma SP?
GOSTEI 0
Emerson Nascimento
30/01/2006
no SQL Server é assim:
onde:
1 - Domingo
2 - Segunda-feira
...
7 - Sábado
select datepart(weekday,CampoData) from Tabela
onde:
1 - Domingo
2 - Segunda-feira
...
7 - Sábado
GOSTEI 0
Martins
30/01/2006
no SQL Server é assim:
onde:
1 - Domingo
2 - Segunda-feira
...
7 - Sábado
select datepart(weekday,CampoData) from Tabela
E no Ib/Fb como seria?
GOSTEI 0
Michael
30/01/2006
Olá!
Até onde eu sei, não existem funções nativas em SQL. Cada banco de dados implementa seu grupo de rotinas independentes.
A função [b:383999f633]Extract[/b:383999f633], mencionada pelo colega [b:383999f633]AASN[/b:383999f633], só funciona do jeito desejado no [b:383999f633]Firebird[/b:383999f633]. No [b:383999f633]SQL Server[/b:383999f633], por exemplo, ela serve para extrair um elemento de um conjunto. Usa-se [b:383999f633]DatePart [/b:383999f633]para se extrair uma determinada informação, como o mês, o ano, o dia da semana, etc, de um campo (small) datetime.
Sua abordagem neste caso, se quiser usar SQL, vai depender do seu banco de dados.
[]´s
Até onde eu sei, não existem funções nativas em SQL. Cada banco de dados implementa seu grupo de rotinas independentes.
A função [b:383999f633]Extract[/b:383999f633], mencionada pelo colega [b:383999f633]AASN[/b:383999f633], só funciona do jeito desejado no [b:383999f633]Firebird[/b:383999f633]. No [b:383999f633]SQL Server[/b:383999f633], por exemplo, ela serve para extrair um elemento de um conjunto. Usa-se [b:383999f633]DatePart [/b:383999f633]para se extrair uma determinada informação, como o mês, o ano, o dia da semana, etc, de um campo (small) datetime.
Sua abordagem neste caso, se quiser usar SQL, vai depender do seu banco de dados.
[]´s
GOSTEI 0
Michael
30/01/2006
Olá [b:74d63e301a]Martins[/b:74d63e301a]!
No [b:74d63e301a]FB/IB[/b:74d63e301a] usa-se, como mencionado a pouco, [b:74d63e301a]Extract[/b:74d63e301a].
Mais aplicações com [b:74d63e301a]Extract [/b:74d63e301a]no FB/IB podem ser vistas [url=http://www.volny.cz/iprenosil/interbase/ip_ib_code_timestamp.htm]neste link[/url] e [url=http://firebird.sourceforge.net/index.php?op=useful&id=ostenried_1]neste tbm[/url].
[]´s
No [b:74d63e301a]FB/IB[/b:74d63e301a] usa-se, como mencionado a pouco, [b:74d63e301a]Extract[/b:74d63e301a].
select Extract(weekday from CAMPO_DATA) as DiaSemana from TABELA
Mais aplicações com [b:74d63e301a]Extract [/b:74d63e301a]no FB/IB podem ser vistas [url=http://www.volny.cz/iprenosil/interbase/ip_ib_code_timestamp.htm]neste link[/url] e [url=http://firebird.sourceforge.net/index.php?op=useful&id=ostenried_1]neste tbm[/url].
[]´s
GOSTEI 0
Aroldo Zanela
30/01/2006
Ola [b:f8d4234514]AASN[/b:f8d4234514], bom dia.
Teste sua dica no Query Analyzer mas não funcionou
Outro ponto se eu utilizar esta opção terei que estar fazendo isso em uma SP?
Incorrect syntax near the keyword ´from´.
Colega,
Com SQL Server (parece ser o seu caso):
declare @dia_semana int select @dia_semana = DatePart(weekday, COLUNA_DATA) from SUA_TABELA where COLUNA_CHAVE=80626 if @dia_semana in (1,7) begin if @dia_semana = 1 begin set @dia_semana = @dia_semana + 2 end else begin set @dia_semana = @dia_semana + 3 end end
GOSTEI 0
Macario
30/01/2006
[quote:57bcd44233=´Aroldo Zanela´]
Colega,
Com SQL Server (parece ser o seu caso):
[/quote:57bcd44233]
Olá.
Obrigado pela ajuda de todos.
Alguem teria um ´esqueleto´ de um SP, para que eu possa com base na dica do [b:57bcd44233]Aroldo Zanela[/b:57bcd44233], tentar montar o que preciso. :idea: :arrow:
Ola [b:57bcd44233]AASN[/b:57bcd44233], bom dia.
Teste sua dica no Query Analyzer mas não funcionou
Outro ponto se eu utilizar esta opção terei que estar fazendo isso em uma SP?
Incorrect syntax near the keyword ´from´.
Colega,
Com SQL Server (parece ser o seu caso):
declare @dia_semana int select @dia_semana = DatePart(weekday, COLUNA_DATA) from SUA_TABELA where COLUNA_CHAVE=80626 if @dia_semana in (1,7) begin if @dia_semana = 1 begin set @dia_semana = @dia_semana + 2 end else begin set @dia_semana = @dia_semana + 3 end end
Olá.
Obrigado pela ajuda de todos.
Alguem teria um ´esqueleto´ de um SP, para que eu possa com base na dica do [b:57bcd44233]Aroldo Zanela[/b:57bcd44233], tentar montar o que preciso. :idea: :arrow:
GOSTEI 0
Aroldo Zanela
30/01/2006
Colega,
Com o Enterprise Manager, vai na seção de StoredProcedures e clica com o botão direito e seleciona ´Nova´ que ele monta o esqueleto. Acho que aqui no fórum na seção de SQL Server deve ter alguma coisa também.
Com o Enterprise Manager, vai na seção de StoredProcedures e clica com o botão direito e seleciona ´Nova´ que ele monta o esqueleto. Acho que aqui no fórum na seção de SQL Server deve ter alguma coisa também.
GOSTEI 0
Macario
30/01/2006
Valeu pela ajuda. Farei uma pesquisa.
Até mais.
Até mais.
GOSTEI 0