Diese Seite mit anderen teilen ...

Informationen zum Thema:
Forum:
WinDev Forum
Beiträge im Thema:
5
Erster Beitrag:
vor 2 Jahren, 7 Monaten
Letzter Beitrag:
vor 2 Jahren, 7 Monaten
Beteiligte Autoren:
Ericus, CCC2, Piet van Zanten, Paulo Oliveira

[WB19] SQL and Dates

Startbeitrag von Ericus am 10.11.2015 11:07

Hi

Anybody know how I can add x number of days to a date field through a query.

I want to get something like this

SELECT LastServiceDate, LastServiceDate + ServiceInterval from Service

The service interval can be between 30 or 360 and I want to get the machines due for a service in this month.

I have tried with CAST but you cannot cast a date to an integer and back so there must be some other trick.

Thanks in advance.



Ericus Steyn

Antworten:

Hi Ericus,

You don't need to add anything in SQL, just use:
"SELECT * FROM Service WHERE LastServiceDate BETWEEN '%1' AND '%2' ORDER BY LastServiceDate"
Do the date calculation on the parameters.

Regards,
Piet

von Piet van Zanten - am 10.11.2015 11:20
Thanks Piet

Will give it a try.

von Ericus - am 10.11.2015 12:14
Hi Ericus,
In this case the Piet solutions is the best one but if your db is in HFSQL you can use WLanguage functions in the SQL, check this info:

http://doc.windev.com/en-US/?1513004&name=Overloading_a_WLanguage_function#NOTE3_1

von Paulo Oliveira - am 10.11.2015 12:44
Hi Ericus,

do not use "between" when you the field is datetime . depend on the database server that you using, you may endup filter out some valid data

use the following method (for MSSQL)

(transdate >= @D1 and transdate < dateadd(d,1,@D2))

von CCC2 - am 11.11.2015 05:38
Zur Information:
MySnip.de hat keinen Einfluss auf die Inhalte der Beiträge. Bitte kontaktieren Sie den Administrator des Forums bei Problemen oder Löschforderungen über die Kontaktseite.
Falls die Kontaktaufnahme mit dem Administrator des Forums fehlschlägt, kontaktieren Sie uns bitte über die in unserem Impressum angegebenen Daten.