Dias da semana
Estou com uma dúvida até simples, eu preciso retornar os dias da semana atual. Por exemplo, hoje é quarta-feira 05 preciso utilizar uma função já existente ou criar uma que retorne os dias anteriores até o domingo que é o primeiro dia da semana, ou seja, 04,03,02). Alguém sabe algum função nativa ou alguém já possui função pronta que possa compartilhar?
Chromusmaster
Curtidas 0
Melhor post
Ana Lichirgu
07/03/2019
Boa tarde! No Sql tem a função DATEPART, que retorna um inteiro que representa o datepart especificado do argumento date especificado.
Quando datepart é week (wk, ww) ou weekday (dw), o valor retornado DATEPART depende do valor definido usando SET DATEFIRST.
1º de janeiro de qualquer ano define o número inicial para o weekdatepart. Por exemplo:
DATEPART (wk, 'Jan 1, xxxx') = 1
em que xxxx é qualquer ano.
Esta tabela mostra o valor retornado para week e weekday datepart para '2007-04-21' para cada argumento SET DATEFIRST.
1º de janeiro de 2007 cai em uma segunda-feira. 21 de abril de 2007 cai em um sábado.
Para o Inglês (Estados Unidos), SET DATEFIRST 7 -- ( Sunday ) funciona como o padrão. Depois de definir DATEFIRST, use essa instrução SQL sugerida para os valores da tabela datepart:
SELECT DATEPART(week, '2007-04-21 '), DATEPART(weekday, '2007-04-21 ')
Espero ter ajudado!
Quando datepart é week (wk, ww) ou weekday (dw), o valor retornado DATEPART depende do valor definido usando SET DATEFIRST.
1º de janeiro de qualquer ano define o número inicial para o weekdatepart. Por exemplo:
DATEPART (wk, 'Jan 1, xxxx') = 1
em que xxxx é qualquer ano.
Esta tabela mostra o valor retornado para week e weekday datepart para '2007-04-21' para cada argumento SET DATEFIRST.
1º de janeiro de 2007 cai em uma segunda-feira. 21 de abril de 2007 cai em um sábado.
Para o Inglês (Estados Unidos), SET DATEFIRST 7 -- ( Sunday ) funciona como o padrão. Depois de definir DATEFIRST, use essa instrução SQL sugerida para os valores da tabela datepart:
SELECT DATEPART(week, '2007-04-21 '), DATEPART(weekday, '2007-04-21 ')
Espero ter ajudado!
GOSTEI 2
Mais Respostas
Chromusmaster
07/03/2019
Boa tarde! No Sql tem a função DATEPART, que retorna um inteiro que representa o datepart especificado do argumento date especificado.
Quando datepart é week (wk, ww) ou weekday (dw), o valor retornado DATEPART depende do valor definido usando SET DATEFIRST.
1º de janeiro de qualquer ano define o número inicial para o weekdatepart. Por exemplo:
DATEPART (wk, 'Jan 1, xxxx') = 1
em que xxxx é qualquer ano.
Esta tabela mostra o valor retornado para week e weekday datepart para '2007-04-21' para cada argumento SET DATEFIRST.
1º de janeiro de 2007 cai em uma segunda-feira. 21 de abril de 2007 cai em um sábado.
Para o Inglês (Estados Unidos), SET DATEFIRST 7 -- ( Sunday ) funciona como o padrão. Depois de definir DATEFIRST, use essa instrução SQL sugerida para os valores da tabela datepart:
SELECT DATEPART(week, '2007-04-21 '), DATEPART(weekday, '2007-04-21 ')
Espero ter ajudado!
Quando datepart é week (wk, ww) ou weekday (dw), o valor retornado DATEPART depende do valor definido usando SET DATEFIRST.
1º de janeiro de qualquer ano define o número inicial para o weekdatepart. Por exemplo:
DATEPART (wk, 'Jan 1, xxxx') = 1
em que xxxx é qualquer ano.
Esta tabela mostra o valor retornado para week e weekday datepart para '2007-04-21' para cada argumento SET DATEFIRST.
1º de janeiro de 2007 cai em uma segunda-feira. 21 de abril de 2007 cai em um sábado.
Para o Inglês (Estados Unidos), SET DATEFIRST 7 -- ( Sunday ) funciona como o padrão. Depois de definir DATEFIRST, use essa instrução SQL sugerida para os valores da tabela datepart:
SELECT DATEPART(week, '2007-04-21 '), DATEPART(weekday, '2007-04-21 ')
Espero ter ajudado!
Ajudou bastante. Vou seguir as orientações, obrigado!
GOSTEI 0
Emerson Nascimento
07/03/2019
a instrução abaixo te dá o dia inicial e o dia atual da semana da data informada.
troque GETDATE() pela data desejada. por exemplo:
daí, com o dia inicial e o dia final em mãos, você poderá fazer a tratativa que precisar.
SELECT DATEPART(DAY, DATEADD(DAY, (CASE WHEN DATEPART(weekday, GETDATE()) > 1 THEN 1 - DATEPART(weekday, GETDATE()) ELSE 0 END), GETDATE())) DIAINI, DATEPART(DAY, GETDATE()) DIAFIM
troque GETDATE() pela data desejada. por exemplo:
SELECT DATEPART(DAY, DATEADD(DAY, (CASE WHEN DATEPART(weekday, '2007-04-21') > 1 THEN 1 - DATEPART(weekday, '2007-04-21') ELSE 0 END), '2007-04-21')) DIAINI, DATEPART(DAY, '2007-04-21') DIAFIM
daí, com o dia inicial e o dia final em mãos, você poderá fazer a tratativa que precisar.
GOSTEI 1
Chromusmaster
07/03/2019
a instrução abaixo te dá o dia inicial e o dia atual da semana da data informada.
troque GETDATE() pela data desejada. por exemplo:
daí, com o dia inicial e o dia final em mãos, você poderá fazer a tratativa que precisar.
SELECT DATEPART(DAY, DATEADD(DAY, (CASE WHEN DATEPART(weekday, GETDATE()) > 1 THEN 1 - DATEPART(weekday, GETDATE()) ELSE 0 END), GETDATE())) DIAINI, DATEPART(DAY, GETDATE()) DIAFIM
troque GETDATE() pela data desejada. por exemplo:
SELECT DATEPART(DAY, DATEADD(DAY, (CASE WHEN DATEPART(weekday, '2007-04-21') > 1 THEN 1 - DATEPART(weekday, '2007-04-21') ELSE 0 END), '2007-04-21')) DIAINI, DATEPART(DAY, '2007-04-21') DIAFIM
daí, com o dia inicial e o dia final em mãos, você poderá fazer a tratativa que precisar.
Show! Fiz uma daptação para o meu contexto da seguinte maneira:
WHERE SRE.DATAAUTORIZACAO BETWEEN (CONVERT(DATE,DATEADD(DAY, (CASE WHEN DATEPART(weekday, GETDATE()) > 1 THEN 1 - DATEPART(weekday, GETDATE()) ELSE 0 END), GETDATE()))) AND (CONVERT(DATE,GETDATE()) )
GOSTEI 0