Fast Report - SQL Lite Functions Commonly Use: Difference between revisions

From eStream Software
No edit summary
No edit summary
Line 1: Line 1:
==01. How to get the date difference results in days using SQL Lite?==
==How to get the date difference results in days using SQL Lite?==
===Example 1: Date different in between the Payment Date and Invoice Date ===
===Example 1: Date different in between the Payment Date and Invoice Date ===
:Payment Date = 05/05/2016
:Payment Date = 05/05/2016
Line 51: Line 51:
<div style="float: right;">  [[#top|[top]]]</div>
<div style="float: right;">  [[#top|[top]]]</div>


==02. Why on Query for Float or Currency type Field (eg DocAmt) the result become Integer?==
==Why on Query for Float or Currency type Field (eg DocAmt) the result become Integer?==
: Try use ''CAST'' (eg SUM(CAST(DocAmt AS REAL)) DocAmt....)
: Try use ''CAST'' (eg SUM(CAST(DocAmt AS REAL)) DocAmt....)


<div style="float: right;">  [[#top|[top]]]</div>
<div style="float: right;">  [[#top|[top]]]</div>


==03. Why after Query for Date type field (eg DocDate) the date look in yyyymmdd format?==
==Why after Query for Date type field (eg DocDate) the date look in yyyymmdd format?==
: Try use ''strftime'' (eg strftime(''%d/%m/%Y'', A.DocDate) AS DocDate )
: Try use ''strftime'' (eg strftime(''%d/%m/%Y'', A.DocDate) AS DocDate )



Revision as of 03:53, 6 May 2016

How to get the date difference results in days using SQL Lite?

Example 1: Date different in between the Payment Date and Invoice Date

Payment Date = 05/05/2016
Invoice Date = 15/03/2016
Month Days
Mar 2016 16 Date from Invoice Date, ie. 16/03/2016
April 2016 30 April month, ie. 01/04/2016 - 30/04/2016
May 2016 5 Date to payment date, ie. 05/05/2016
Date differences 51


Julianday(Date2) - Julianday(Date1)

(julianday(Date(PaymentDate)) - julianday(Date(InvoiceDate)))


Example 2: Date different in between the Payment Date and the month end of the Invoice Date

Payment Date = 05/05/2016
Invoice Date = 15/03/2016 (31/03/2016)
Month Days
April 2016 30 Date from Invoice Date, ie. 01/04/2016
May 2016 5 Date to payment date, ie. 05/05/2016
Date differences 35


Julianday(Date2) - Julianday(Date1, start of month, 1 month,-1 day))

(julianday(Date(PaymentDate))-julianday(DATE(InvoiceDate, start of month, 1 month, -1 day)))

Why on Query for Float or Currency type Field (eg DocAmt) the result become Integer?

Try use CAST (eg SUM(CAST(DocAmt AS REAL)) DocAmt....)

Why after Query for Date type field (eg DocDate) the date look in yyyymmdd format?

Try use strftime (eg strftime(%d/%m/%Y, A.DocDate) AS DocDate )

See also