<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Condition where pour comparer si une date (format datetime20.) est egal +/5 a une autre datetime20. in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Condition-where-pour-comparer-si-une-date-format-datetime20-est/m-p/910582#M359089</link>
    <description>&lt;P&gt;Condition where pour comparer sisi une date (format datetime20.) d'une table A (want) se trouve dans une plage de +/- 5 jours par rapport à une date (format datetime20.) de la table B (want 2).&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;J'ai deux ensembles de données, want et want2, où je génère aléatoirement 20 dates au format datetime20., mais je n'arrive pas à créer la condition WHERE qui permet de sélectionner les dates communes, mon code ne seleccioné pas aucun date.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Pourriez vous m'aider svp?&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* Crear tabla con 20 fechas adicionales */&lt;/DIV&gt;&lt;DIV&gt;data want;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* Definir la fecha inicial */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; chardate = "23/01/2023";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; numdate = input(chardate, ddmmyy10.);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; numdatetime = dhms(numdate, 0, 0, 0);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; format numdate date9. numdatetime datetime20.;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; output;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* Generar 20 fechas adicionales */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; do i = 1 to 10;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Incrementar la fecha inicial para obtener fechas adicionales */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; numdate = intnx('day', numdate, 1); /* Incrementar en un día */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; numdatetime = dhms(numdate, 0, 0, 0);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; end;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;data want2;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* Definir la fecha inicial */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; chardate = "25/01/2023";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; numdate = input(chardate, ddmmyy10.);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; numdatetime2 = dhms(numdate, 0, 0, 0);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; format numdate date9. numdatetime2 datetime20.;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; output;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* Generar 20 fechas adicionales */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; do i = 1 to 10;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Incrementar la fecha inicial para obtener fechas adicionales */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; numdate = intnx('day', numdate, 1); /* Incrementar en un día */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; numdatetime2 = dhms(numdate, 0, 0, 0);&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;prueba1=intnx("day", datepart(numdatetime2), 0);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;prueba2=intnx("day", datepart(numdatetime2), -5);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;prueba3=intnx("day", datepart(numdatetime2), 5);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; end;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; create table fecha_matching as&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; select&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; a.numdatetime as numdatetime,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; b.numdatetime2 as numdatetime2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; from want a, want2 b&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; where&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; intck('day', b.numdatetime2, a.numdatetime) &amp;lt;= 5&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; and intck('day', b.numdatetime2, a.numdatetime) &amp;gt;= -5;&lt;/DIV&gt;&lt;DIV&gt;quit;&lt;/DIV&gt;</description>
    <pubDate>Fri, 05 Jan 2024 10:03:17 GMT</pubDate>
    <dc:creator>agdato</dc:creator>
    <dc:date>2024-01-05T10:03:17Z</dc:date>
    <item>
      <title>Condition where pour comparer si une date (format datetime20.) est egal +/5 a une autre datetime20.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Condition-where-pour-comparer-si-une-date-format-datetime20-est/m-p/910582#M359089</link>
      <description>&lt;P&gt;Condition where pour comparer sisi une date (format datetime20.) d'une table A (want) se trouve dans une plage de +/- 5 jours par rapport à une date (format datetime20.) de la table B (want 2).&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;J'ai deux ensembles de données, want et want2, où je génère aléatoirement 20 dates au format datetime20., mais je n'arrive pas à créer la condition WHERE qui permet de sélectionner les dates communes, mon code ne seleccioné pas aucun date.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Pourriez vous m'aider svp?&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* Crear tabla con 20 fechas adicionales */&lt;/DIV&gt;&lt;DIV&gt;data want;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* Definir la fecha inicial */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; chardate = "23/01/2023";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; numdate = input(chardate, ddmmyy10.);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; numdatetime = dhms(numdate, 0, 0, 0);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; format numdate date9. numdatetime datetime20.;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; output;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* Generar 20 fechas adicionales */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; do i = 1 to 10;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Incrementar la fecha inicial para obtener fechas adicionales */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; numdate = intnx('day', numdate, 1); /* Incrementar en un día */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; numdatetime = dhms(numdate, 0, 0, 0);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; end;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;data want2;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* Definir la fecha inicial */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; chardate = "25/01/2023";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; numdate = input(chardate, ddmmyy10.);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; numdatetime2 = dhms(numdate, 0, 0, 0);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; format numdate date9. numdatetime2 datetime20.;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; output;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* Generar 20 fechas adicionales */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; do i = 1 to 10;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Incrementar la fecha inicial para obtener fechas adicionales */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; numdate = intnx('day', numdate, 1); /* Incrementar en un día */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; numdatetime2 = dhms(numdate, 0, 0, 0);&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;prueba1=intnx("day", datepart(numdatetime2), 0);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;prueba2=intnx("day", datepart(numdatetime2), -5);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;prueba3=intnx("day", datepart(numdatetime2), 5);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; end;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; create table fecha_matching as&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; select&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; a.numdatetime as numdatetime,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; b.numdatetime2 as numdatetime2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; from want a, want2 b&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; where&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; intck('day', b.numdatetime2, a.numdatetime) &amp;lt;= 5&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; and intck('day', b.numdatetime2, a.numdatetime) &amp;gt;= -5;&lt;/DIV&gt;&lt;DIV&gt;quit;&lt;/DIV&gt;</description>
      <pubDate>Fri, 05 Jan 2024 10:03:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Condition-where-pour-comparer-si-une-date-format-datetime20-est/m-p/910582#M359089</guid>
      <dc:creator>agdato</dc:creator>
      <dc:date>2024-01-05T10:03:17Z</dc:date>
    </item>
    <item>
      <title>Re: Condition where pour comparer si une date (format datetime20.) est egal +/5 a une autre datetime</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Condition-where-pour-comparer-si-une-date-format-datetime20-est/m-p/910583#M359090</link>
      <description>Je prefere si possible utiliser un left_join comme celle ci :&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;proc sql;&lt;BR /&gt;&lt;BR /&gt;create table want3 as&lt;BR /&gt;select distinct&lt;BR /&gt;a.numdatetime&lt;BR /&gt;&lt;BR /&gt;from want a&lt;BR /&gt;left join want2 b&lt;BR /&gt;&lt;BR /&gt;on (a.numdatetime &amp;gt;= intnx("day",datepart(b.numdatetime2),-1)&lt;BR /&gt;and a.numdatetime &amp;lt;= intnx("day",datepart(b.numdatetime2),1))&lt;BR /&gt;/* where b.exe_soi_dtd between intnx('day', a.date_ex_bio, -5) and intnx('day', a.date_ex_bio, 5)*/&lt;BR /&gt;/* and case when a.date_decess is not null and b.BEN_DCD_DTE is not null&lt;BR /&gt;then a.date_decess = b.BEN_DCD_DTE&lt;BR /&gt;else 1&lt;BR /&gt;end&lt;BR /&gt;&lt;BR /&gt;and INTCK('DTDAY', a.date_ex_bio, b.exe_soit_dtd) &amp;lt;= 5 /* +/- 5 días&lt;BR /&gt;a.finess_jur = b.ETA_NUM */&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;;&lt;BR /&gt;quit;</description>
      <pubDate>Fri, 05 Jan 2024 10:17:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Condition-where-pour-comparer-si-une-date-format-datetime20-est/m-p/910583#M359090</guid>
      <dc:creator>agdato</dc:creator>
      <dc:date>2024-01-05T10:17:01Z</dc:date>
    </item>
    <item>
      <title>Re: Condition where pour comparer si une date (format datetime20.) est egal +/5 a une autre datetime</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Condition-where-pour-comparer-si-une-date-format-datetime20-est/m-p/910590#M359093</link>
      <description>&lt;P&gt;Below your code with some tweaks. Main issue was that in intck() you used 'day' instead of 'dtday' as date directive together with a SAS datetime value.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/* Crear tabla con 20 fechas adicionales */
data want;
  /* Definir la fecha inicial */
  chardate = "23/01/2023";
  format numdate date9. numdatetime datetime20.;
  /* Generar 20 fechas adicionales */
  do i = 0 to 10;
    /* Incrementar la fecha inicial para obtener fechas adicionales */
    numdate = intnx('day', input(chardate, ddmmyy10.), i); /* Incrementar en un día */
    numdatetime = dhms(numdate, 0, 0, 0);
    output;
  end;
run;

data want2;
  /* Definir la fecha inicial */
  chardate = "25/01/2023";
  format numdate date9. numdatetime2 datetime20.;

  /* Generar 20 fechas adicionales */
  do i = 0 to 10;
    /* Incrementar la fecha inicial para obtener fechas adicionales */
    numdate = intnx('day', input(chardate, ddmmyy10.), i); /* Incrementar en un día */
    numdatetime2 = dhms(numdate, 0, 0, 0);
    prueba1=intnx("day", datepart(numdatetime2), 0);
    prueba2=intnx("day", datepart(numdatetime2), -5);
    prueba3=intnx("day", datepart(numdatetime2), 5);
    output;
  end;
run;

proc sql;
/*  create table fecha_matching as*/
    select 
      a.i as a_i,
      a.numdatetime as numdatetime,
      b.i as b_i,
      b.numdatetime2 as numdatetime2,
      intck('dtday',a.numdatetime,b.numdatetime2) as diff
    from want a, want2 b
      where intck('dtday',a.numdatetime,b.numdatetime2) between -5 and 5
  ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 05 Jan 2024 11:35:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Condition-where-pour-comparer-si-une-date-format-datetime20-est/m-p/910590#M359093</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2024-01-05T11:35:00Z</dc:date>
    </item>
    <item>
      <title>Re: Condition where pour comparer si une date (format datetime20.) est egal +/5 a une autre datetime</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Condition-where-pour-comparer-si-une-date-format-datetime20-est/m-p/910625#M359108</link>
      <description>&lt;P&gt;Merci Patrick ! c'est parfait !&lt;/P&gt;</description>
      <pubDate>Fri, 05 Jan 2024 15:28:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Condition-where-pour-comparer-si-une-date-format-datetime20-est/m-p/910625#M359108</guid>
      <dc:creator>agdato</dc:creator>
      <dc:date>2024-01-05T15:28:15Z</dc:date>
    </item>
  </channel>
</rss>

