Comment obtenir le premier et le dernier jour de la semaine dans Oracle?
J'ai besoin d'obtenir le premier jour et le dernier jour de la semaine à partir de certaines chaînes qui ont le format comme ceci:
'201118'
où 2011 est l'année et le 18 est le numéro de la semaine. Connaître le numéro de la semaine, comment puis-je obtenir le premier et le dernier jour de la semaine?
Comment puis-je faire cela?
Cela peut vous aider: forums.oracle.com/forums/thread.jspa?threadID=849332
que pourrait-il asktom.oracle.com/pls/asktom/...
que pourrait-il asktom.oracle.com/pls/asktom/...
OriginalL'auteur Alex | 2011-04-01
Vous devez vous connecter pour publier un commentaire.
SEMAINE
MOIS
OriginalL'auteur user3378814
Si vous utilisez Oracle, ce code peut vous aider à:
OriginalL'auteur user2867308
Ce qui concerne,
Rob.
OriginalL'auteur Rob van Wijk
OriginalL'auteur shibi
En supposant que vous entendez semaines par rapport à la première journée de l'année ...
OriginalL'auteur Dave Costa
Vous pouvez essayer cette approche:
Obtenir la date actuelle.
Ajouter le nombre d'années qui est égal à la différence entre la date du jour de l'année et de l'année.
Soustraire le nombre de jours qui est le dernier obtenu date du jour de la semaine numéro de l' (et il va nous donner le dernier jour de quelques semaine).
Ajouter le nombre de semaines qui est la différence entre le dernier obtenu date du numéro de semaine et spécifié le numéro de la semaine, et qui donnera le dernier jour de la semaine souhaitée.
Soustraire 6 jours pour obtenir le premier jour.
OriginalL'auteur Andriy M
Sauf si c'est un one-off de la conversion de données, les chances sont que vous allez bénéficier de l'aide d'un calendrier de table.
Avoir un tel tableau, il est vraiment facile de filtrer ou d'agrégation de données pour des périodes dans plus régulièrement ISO semaines. Semaines habituellement se comportent un peu différemment entre les entreprises et les ministères. Dès que vous quittez "ISO-land" intégré dans les fonctions de date ne peut pas vous aider.
Vous pouvez créer des tables supplémentaires pour "purchase_weeks" ou "retail_weeks", ou tout simplement d'agrégation à la volée:
Si vous traitez un grand nombre de documents, l'agrégation à la volée ne fera pas une différence appréciable, mais si vous effectuez seule ligne, vous bénéficiez de la création de tables pour les semaines ainsi.
À l'aide du calendrier les tables offre un subtil avantage de performance dans le fait que l'optimiseur peut fournir de meilleures estimations sur des colonnes statiques que sur imbriquée
add_months(to_date(to_char()))
appels de fonction.OriginalL'auteur Ronnis
En fait, j'ai fait quelque chose comme ceci:
de
(
sélectionnez to_date(ANNÉE||'01','YYYYMM") + 7 * (SEMAINE 1) datetime, yearweek
à partir de
(
select substr(yearweek,1,4) ANS,
to_number(substr(yearweek,5)) de la SEMAINE,
yearweek
from (select '201018' yearweek de double
)
)
), myconfigtable myconfigtable
où myconfigtable.codpar='TYPEOFPERIOD'
OriginalL'auteur Alex
Encore une autre solution (le lundi est le premier jour):
OriginalL'auteur cem
Une autre solution est
Vous devez concat la cantweek avec l'année
OriginalL'auteur Ivan Fretes
Je pense que c'est juste une simple instruction select. J'espère que ça fonctionne, parce que je ne pouvais pas le tester à la maison, parce que je n'ai pas de base de données Oracle ici 😉
Vous devez être attentif car il y a une différence entre WW et IW. Voici un article qui explique la différence: http://rwijk.blogspot.com/2008/01/date-format-element-ww.html
OriginalL'auteur Bernd
Premier jour de la semaine (lundi):
Dernier jour de la semaine (dimanche):
En remplaçant votre date ou la date de champ, dans ces formules, va travailler pour vous!
OriginalL'auteur Brian Clancy