datetime('2015-08-10T17:19:37.670') is '2015-08-10 17:19:37'
datetime('2015-08-10 17:19:37.670') is '2015-08-10 17:19:37'

as you see, the output is not equal to the input.  Therefore the check 
constraint fails.  However, datetime(timestring) where timestring is an invalid 
ISO timestring returns NULL, so yout check constraint might likely be:  CHECK 
(datetime(col) is not null)

mutatis mutandis date()

> -----Original Message-----
> From: sqlite-users-bounces at mailinglists.sqlite.org [mailto:sqlite-users-
> bounces at mailinglists.sqlite.org] On Behalf Of Roman Fleysher
> Sent: Wednesday, 4 May, 2016 14:44
> To: General Discussion of SQLite Database
> Subject: [sqlite] datetime in CHECK
> 
> Dear SQLiters,
> 
> I am trying to use CHECK constraint is column of a table to enforce
> datetime format and this works:
> 
> AcquisitionDate        TEXT CHECK (AcquisitionDate IS
> date(AcquisitionDate))
> 
> when I insert '2015-08-10'. But this
> 
> AcquisitionDateTime  TEXT CHECK (AcquisitionDateTime IS
> datetime(AcquisitionDateTime))
> 
> when I insert '2015-08-10T17:19:37.670' or '2015-08-10 17:19:37.670'
> fails. Why? How to do it properly?
> 
> Thank you,
> 
> Roman
> _______________________________________________
> sqlite-users mailing list
> sqlite-users at mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users



Reply via email to