[Gambas-user] Using dates in Gambas

David Silverwood the_watchmann at yahoo.com
Tue May 21 20:50:21 CEST 2019

 Hi Benoit
It will be great if you can explain the database date handling because I can for the life of me not get Gambas to keep a sqlite date in sqlite format. (when loading from the database). Tried Str$, Format$, etc and no luck to date. It defaults to US format no matter what I try. I thought it had to do with my regional settings but Gambas apparently reads that perfectly when using 
Print System.TimeZonePrint System.Language
 last try Gambas complained as follows: 

The following error has occurred:
Type mismatch: wanted Date, got String instead (PS. I wanted a "date" as a string and not a date, in the hope that gambas would leave it alone...)
I'm about ready to give up here...
Many thanks

    On Saturday, May 18, 2019, 1:54:08 PM GMT+2, Gianluigi <bagonergi at gmail.com> wrote:  

Il giorno ven 17 mag 2019 alle ore 21:44 Benoît Minisini <g4mba5 at gmail.com> ha scritto:


As I notice that almost nobody suceeds in dealing with date & time 
correctly, I started to wrote a overview about that in the wiki.


Please feal free to comment and modify this page so that date & time 
management becomes as clear as possible.

This is still a work in progress, and I especially need "how to" code 
example about dates.


Benoît Minisini

Hi Benoit,
probably could have inspired what I wrote here:


In fact when I write:

"Left(Str(hDate), 10) '(international)"

I don't mean UTC but I mean "displaying the date in local format in all countries"
And when I write:

"Format(hDate, "dd/mm/yyyy") '(Local)"

I mean "displaying the date in local format only in your country"

In my defense, I have attached a project that contains this code that better explains what I wanted to say:
' From a Sotema code
Public Sub Main()

  Dim hConn As Connection
  Dim hResult As Result
  Dim hTable As Table
  ' Activate the display of gb.db messages
  db.Debug = True
  ' Set the connection parameters
  With hConn = New Connection
    .Type = "sqlite"
    .Host = System.User.Home
  End With
  ' if the db exists, delete it.
  ' this allows you to run the example several times
  If (hConn.Databases.Exist("exampledb")) Then
  hConn.Name = "exampledb"
  ' create the table
  hTable = hConn.Tables.Add("users")
  hTable.Fields.Add("id", db.Integer)
  hTable.Fields.Add("name", db.String, 80)
  hTable.Fields.Add("birth", db.Date)
  ' add one record
  hResult = hConn.Create("users")
  hResult!id = 1
  hResult!name = "Gianluigi"
  hResult!birth = Date(1947, 4, 10)
  ' retrieve the record
  hResult = hConn.Find("users") ' the same as  select * from users
  ' hResult = hConn.Exec("SELECT * FROM users")
  Print Left(Str(hResult["birth"]), 10)
  'Print Format(hResult["birth"], "dd/mm/yyyy")


and I had previously referred to ReportTest on the Software farm, that treats dates the same way.


----[ Gambas mailing-list is hosted by https://www.hostsharing.net ]----
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.gambas-basic.org/pipermail/user/attachments/20190521/dca16016/attachment-0001.html>

More information about the User mailing list