<?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 Useful Redshift Functions for date and time analysis in App Development</title>
    <link>https://community.qlik.com/t5/App-Development/Useful-Redshift-Functions-for-date-and-time-analysis/m-p/2523007#M106725</link>
    <description>&lt;P&gt;SET vConnectionPath ='your database';&lt;/P&gt;&lt;P&gt;LIB Connect to $(vConnectionPath);&lt;BR /&gt;Adobe:&lt;/P&gt;&lt;P&gt;LOAD * ;&lt;/P&gt;&lt;P&gt;SQL&lt;/P&gt;&lt;P&gt;SELECT&lt;/P&gt;&lt;P&gt;sent_email_datetime, // Which is a timestamp field&lt;/P&gt;&lt;P&gt;// ====================================================================================================&lt;BR /&gt;// Set 1: MAKEDATE() / MAKETIME()&lt;BR /&gt;// ====================================================================================================&lt;/P&gt;&lt;P&gt;TO_DATE('01/11/2023','DD/MM/YYYY',TRUE) AS make_date_qlik,&lt;BR /&gt;TO_TIMESTAMP('01/11/2023 13:11:54','DD/MM/YYYY HH24:MI:SS',TRUE) AS make_timestamp_qlik,&lt;/P&gt;&lt;P&gt;// ====================================================================================================&lt;BR /&gt;// Set 2: Extracting DATE and TIME FROM TIMESTAMP&lt;BR /&gt;// DatePart (Qlik) : Date(FLoor(TIMESTAMP_FIELD)&lt;BR /&gt;// TimePart (Qlik) : Time(Frac(TIMESTAMP_FIELD)&lt;BR /&gt;// ====================================================================================================&lt;/P&gt;&lt;P&gt;TRUNC(sent_email_datetime) AS date_part_qlik,&lt;/P&gt;&lt;P&gt;CAST(TRUNC(sent_email_datetime) AS TIMESTAMP) AS date_part_with_timestamp, //date followed by 00:00:00&lt;/P&gt;&lt;P&gt;EXTRACT(hour FROM sent_email_datetime) || ':' ||&lt;BR /&gt;EXTRACT(minute FROM sent_email_datetime) || ':' ||&lt;BR /&gt;EXTRACT(second FROM sent_email_datetime) AS time_part_qlik,&lt;/P&gt;&lt;P&gt;// ====================================================================================================&lt;BR /&gt;// Set 3: Extracting DATE PARTS and TIME PARTS FROM TIMESTAMP&lt;BR /&gt;// i.e Extracting YEAR/MONTH/WEEK/QUARTER or HOUR/MINUTE/SECOND FROM TIMESTAMP_FIELD&lt;BR /&gt;// ====================================================================================================&lt;/P&gt;&lt;P&gt;// IN REDSHIFT we can use DATE_PART() OR EXTRACT() Functions for this&lt;/P&gt;&lt;P&gt;// USING EXTRACT() FUNCTION&lt;BR /&gt;EXTRACT(year FROM sent_email_datetime) AS year1,&lt;BR /&gt;EXTRACT(quarter FROM sent_email_datetime) AS quarter1,&lt;BR /&gt;EXTRACT(month FROM sent_email_datetime) AS month1,&lt;BR /&gt;EXTRACT(week FROM sent_email_datetime) AS week1,&lt;BR /&gt;EXTRACT(hour FROM sent_email_datetime) AS hour1,&lt;BR /&gt;EXTRACT(minute FROM sent_email_datetime) AS minute1,&lt;BR /&gt;EXTRACT(second FROM sent_email_datetime) AS second1,&lt;BR /&gt;// USING DATE_PART() FUNCTION&lt;BR /&gt;DATE_PART('year', sent_email_datetime) AS year,&lt;BR /&gt;DATE_PART('quarter',sent_email_datetime) AS quarter, //1,2,3,4&lt;BR /&gt;DATE_PART('month', sent_email_datetime) AS month, // 1,2,3...12&lt;BR /&gt;DATE_PART('week', sent_email_datetime) AS week, //1,2,3,4,...52/53&lt;BR /&gt;DATE_PART('hour', sent_email_datetime) AS hour,&lt;BR /&gt;DATE_PART('minute', sent_email_datetime) AS minute,&lt;BR /&gt;DATE_PART('second', sent_email_datetime) AS second,&lt;BR /&gt;// Additional fields&lt;BR /&gt;DATE_PART('year',sent_email_datetime)*10 + DATE_PART('quarter',sent_email_datetime) AS year_quarter,&lt;BR /&gt;DATE_PART('year',sent_email_datetime)*100 + DATE_PART('month',sent_email_datetime) AS year_month,&lt;BR /&gt;DATE_PART('year',sent_email_datetime)*100 + DATE_PART('week',sent_email_datetime) AS year_week,&lt;/P&gt;&lt;P&gt;// ====================================================================================================&lt;BR /&gt;// Set 4: Creating functions like YearStart(),QuarterStart(),MonthStart(),WeekStart()&lt;BR /&gt;// ====================================================================================================&lt;/P&gt;&lt;P&gt;TRUNC(DATE_TRUNC('year',sent_email_datetime)) AS year_start_qlik,&lt;BR /&gt;TRUNC(DATE_TRUNC('quarter',sent_email_datetime)) AS quarter_start_qlik,&lt;BR /&gt;TRUNC(DATE_TRUNC('month',sent_email_datetime)) AS month_start_qlik,&lt;BR /&gt;TRUNC(DATE_TRUNC('week',sent_email_datetime)) AS week_start_qlik,&lt;/P&gt;&lt;P&gt;// ====================================================================================================&lt;BR /&gt;// Set 5: Creating functions like YearEnd(),QuarterEnd(),MonthEnd(),WeekEnd()&lt;BR /&gt;// ====================================================================================================&lt;BR /&gt;LAST_DAY(sent_email_datetime) AS month_end, // o/p:= timestamp (month_end_date+00:00:00)&lt;BR /&gt;DATEADD('day',-1,TRUNC(ADD_MONTHS(TRUNC(DATE_TRUNC('quarter',sent_email_datetime)), 3))) AS quarter_end, // o/p:= timestamp (quarter_end_date+00:00:00)&lt;BR /&gt;DATEADD('day',-1,TRUNC(ADD_MONTHS(TRUNC(DATE_TRUNC('year',sent_email_datetime)), 12))) AS year_end, // o/p:= timestamp (year_end_date+00:00:00)&lt;/P&gt;&lt;P&gt;// ====================================================================================================&lt;BR /&gt;// Set 6: Creating functions like YearEnd(),QuarterEnd(),MonthEnd(),WeekEnd() ==&amp;gt; AS like QLik Interpretation&lt;BR /&gt;// It is Similar to Set 5 but only Timestamp with 23:59:59 is added ( which is similar to qlik)&lt;BR /&gt;// ====================================================================================================&lt;BR /&gt;DATEADD(second,59,&lt;BR /&gt;DATEADD(minute,59,&lt;BR /&gt;DATEADD(hour,23,&lt;BR /&gt;LAST_DAY(sent_email_datetime)&lt;BR /&gt;))) AS month_end_qlik, // o/p:= timestamp (month_end_date+23:59:59)&lt;/P&gt;&lt;P&gt;DATEADD(second,59,&lt;BR /&gt;DATEADD(minute,59,&lt;BR /&gt;DATEADD(hour,23,&lt;BR /&gt;DATEADD('day',-1,TRUNC(ADD_MONTHS(TRUNC(DATE_TRUNC('quarter',sent_email_datetime)), 3)))&lt;BR /&gt;))) AS quarter_end_qlik, // o/p:= timestamp (quarter_end_date+23:59:59)&lt;/P&gt;&lt;P&gt;DATEADD(second,59,&lt;BR /&gt;DATEADD(minute,59,&lt;BR /&gt;DATEADD(hour,23,&lt;BR /&gt;DATEADD('day',-1,TRUNC(ADD_MONTHS(TRUNC(DATE_TRUNC('year',sent_email_datetime)), 12)))&lt;BR /&gt;))) AS year_end_qlik // o/p:= timestamp (year_end_date+23:59:59)&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;FROM $(vConnectionPath).gcdw_rpt.content_effectiveness_sent_email_vw&lt;/P&gt;&lt;P&gt;LIMIT 10000&lt;BR /&gt;;&lt;/P&gt;</description>
    <pubDate>Wed, 02 Jul 2025 14:08:05 GMT</pubDate>
    <dc:creator>Halesha_Bandri</dc:creator>
    <dc:date>2025-07-02T14:08:05Z</dc:date>
    <item>
      <title>Useful Redshift Functions for date and time analysis</title>
      <link>https://community.qlik.com/t5/App-Development/Useful-Redshift-Functions-for-date-and-time-analysis/m-p/2523007#M106725</link>
      <description>&lt;P&gt;SET vConnectionPath ='your database';&lt;/P&gt;&lt;P&gt;LIB Connect to $(vConnectionPath);&lt;BR /&gt;Adobe:&lt;/P&gt;&lt;P&gt;LOAD * ;&lt;/P&gt;&lt;P&gt;SQL&lt;/P&gt;&lt;P&gt;SELECT&lt;/P&gt;&lt;P&gt;sent_email_datetime, // Which is a timestamp field&lt;/P&gt;&lt;P&gt;// ====================================================================================================&lt;BR /&gt;// Set 1: MAKEDATE() / MAKETIME()&lt;BR /&gt;// ====================================================================================================&lt;/P&gt;&lt;P&gt;TO_DATE('01/11/2023','DD/MM/YYYY',TRUE) AS make_date_qlik,&lt;BR /&gt;TO_TIMESTAMP('01/11/2023 13:11:54','DD/MM/YYYY HH24:MI:SS',TRUE) AS make_timestamp_qlik,&lt;/P&gt;&lt;P&gt;// ====================================================================================================&lt;BR /&gt;// Set 2: Extracting DATE and TIME FROM TIMESTAMP&lt;BR /&gt;// DatePart (Qlik) : Date(FLoor(TIMESTAMP_FIELD)&lt;BR /&gt;// TimePart (Qlik) : Time(Frac(TIMESTAMP_FIELD)&lt;BR /&gt;// ====================================================================================================&lt;/P&gt;&lt;P&gt;TRUNC(sent_email_datetime) AS date_part_qlik,&lt;/P&gt;&lt;P&gt;CAST(TRUNC(sent_email_datetime) AS TIMESTAMP) AS date_part_with_timestamp, //date followed by 00:00:00&lt;/P&gt;&lt;P&gt;EXTRACT(hour FROM sent_email_datetime) || ':' ||&lt;BR /&gt;EXTRACT(minute FROM sent_email_datetime) || ':' ||&lt;BR /&gt;EXTRACT(second FROM sent_email_datetime) AS time_part_qlik,&lt;/P&gt;&lt;P&gt;// ====================================================================================================&lt;BR /&gt;// Set 3: Extracting DATE PARTS and TIME PARTS FROM TIMESTAMP&lt;BR /&gt;// i.e Extracting YEAR/MONTH/WEEK/QUARTER or HOUR/MINUTE/SECOND FROM TIMESTAMP_FIELD&lt;BR /&gt;// ====================================================================================================&lt;/P&gt;&lt;P&gt;// IN REDSHIFT we can use DATE_PART() OR EXTRACT() Functions for this&lt;/P&gt;&lt;P&gt;// USING EXTRACT() FUNCTION&lt;BR /&gt;EXTRACT(year FROM sent_email_datetime) AS year1,&lt;BR /&gt;EXTRACT(quarter FROM sent_email_datetime) AS quarter1,&lt;BR /&gt;EXTRACT(month FROM sent_email_datetime) AS month1,&lt;BR /&gt;EXTRACT(week FROM sent_email_datetime) AS week1,&lt;BR /&gt;EXTRACT(hour FROM sent_email_datetime) AS hour1,&lt;BR /&gt;EXTRACT(minute FROM sent_email_datetime) AS minute1,&lt;BR /&gt;EXTRACT(second FROM sent_email_datetime) AS second1,&lt;BR /&gt;// USING DATE_PART() FUNCTION&lt;BR /&gt;DATE_PART('year', sent_email_datetime) AS year,&lt;BR /&gt;DATE_PART('quarter',sent_email_datetime) AS quarter, //1,2,3,4&lt;BR /&gt;DATE_PART('month', sent_email_datetime) AS month, // 1,2,3...12&lt;BR /&gt;DATE_PART('week', sent_email_datetime) AS week, //1,2,3,4,...52/53&lt;BR /&gt;DATE_PART('hour', sent_email_datetime) AS hour,&lt;BR /&gt;DATE_PART('minute', sent_email_datetime) AS minute,&lt;BR /&gt;DATE_PART('second', sent_email_datetime) AS second,&lt;BR /&gt;// Additional fields&lt;BR /&gt;DATE_PART('year',sent_email_datetime)*10 + DATE_PART('quarter',sent_email_datetime) AS year_quarter,&lt;BR /&gt;DATE_PART('year',sent_email_datetime)*100 + DATE_PART('month',sent_email_datetime) AS year_month,&lt;BR /&gt;DATE_PART('year',sent_email_datetime)*100 + DATE_PART('week',sent_email_datetime) AS year_week,&lt;/P&gt;&lt;P&gt;// ====================================================================================================&lt;BR /&gt;// Set 4: Creating functions like YearStart(),QuarterStart(),MonthStart(),WeekStart()&lt;BR /&gt;// ====================================================================================================&lt;/P&gt;&lt;P&gt;TRUNC(DATE_TRUNC('year',sent_email_datetime)) AS year_start_qlik,&lt;BR /&gt;TRUNC(DATE_TRUNC('quarter',sent_email_datetime)) AS quarter_start_qlik,&lt;BR /&gt;TRUNC(DATE_TRUNC('month',sent_email_datetime)) AS month_start_qlik,&lt;BR /&gt;TRUNC(DATE_TRUNC('week',sent_email_datetime)) AS week_start_qlik,&lt;/P&gt;&lt;P&gt;// ====================================================================================================&lt;BR /&gt;// Set 5: Creating functions like YearEnd(),QuarterEnd(),MonthEnd(),WeekEnd()&lt;BR /&gt;// ====================================================================================================&lt;BR /&gt;LAST_DAY(sent_email_datetime) AS month_end, // o/p:= timestamp (month_end_date+00:00:00)&lt;BR /&gt;DATEADD('day',-1,TRUNC(ADD_MONTHS(TRUNC(DATE_TRUNC('quarter',sent_email_datetime)), 3))) AS quarter_end, // o/p:= timestamp (quarter_end_date+00:00:00)&lt;BR /&gt;DATEADD('day',-1,TRUNC(ADD_MONTHS(TRUNC(DATE_TRUNC('year',sent_email_datetime)), 12))) AS year_end, // o/p:= timestamp (year_end_date+00:00:00)&lt;/P&gt;&lt;P&gt;// ====================================================================================================&lt;BR /&gt;// Set 6: Creating functions like YearEnd(),QuarterEnd(),MonthEnd(),WeekEnd() ==&amp;gt; AS like QLik Interpretation&lt;BR /&gt;// It is Similar to Set 5 but only Timestamp with 23:59:59 is added ( which is similar to qlik)&lt;BR /&gt;// ====================================================================================================&lt;BR /&gt;DATEADD(second,59,&lt;BR /&gt;DATEADD(minute,59,&lt;BR /&gt;DATEADD(hour,23,&lt;BR /&gt;LAST_DAY(sent_email_datetime)&lt;BR /&gt;))) AS month_end_qlik, // o/p:= timestamp (month_end_date+23:59:59)&lt;/P&gt;&lt;P&gt;DATEADD(second,59,&lt;BR /&gt;DATEADD(minute,59,&lt;BR /&gt;DATEADD(hour,23,&lt;BR /&gt;DATEADD('day',-1,TRUNC(ADD_MONTHS(TRUNC(DATE_TRUNC('quarter',sent_email_datetime)), 3)))&lt;BR /&gt;))) AS quarter_end_qlik, // o/p:= timestamp (quarter_end_date+23:59:59)&lt;/P&gt;&lt;P&gt;DATEADD(second,59,&lt;BR /&gt;DATEADD(minute,59,&lt;BR /&gt;DATEADD(hour,23,&lt;BR /&gt;DATEADD('day',-1,TRUNC(ADD_MONTHS(TRUNC(DATE_TRUNC('year',sent_email_datetime)), 12)))&lt;BR /&gt;))) AS year_end_qlik // o/p:= timestamp (year_end_date+23:59:59)&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;FROM $(vConnectionPath).gcdw_rpt.content_effectiveness_sent_email_vw&lt;/P&gt;&lt;P&gt;LIMIT 10000&lt;BR /&gt;;&lt;/P&gt;</description>
      <pubDate>Wed, 02 Jul 2025 14:08:05 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Useful-Redshift-Functions-for-date-and-time-analysis/m-p/2523007#M106725</guid>
      <dc:creator>Halesha_Bandri</dc:creator>
      <dc:date>2025-07-02T14:08:05Z</dc:date>
    </item>
  </channel>
</rss>

