Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Database & SysAdmin
  3. Database
  4. Validate Date Time value on Sqlite before insert / update

Validate Date Time value on Sqlite before insert / update

Scheduled Pinned Locked Moved Database
sqlitequestionannouncement
15 Posts 6 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    rahmat1985
    wrote on last edited by
    #1

    as we all know that the correct format for date and time data in sqlite is : 2014-06-18 01:00:00 my question : is there any method to validate date and time data before insert / update on sqlite, maybe when making table, to make sure date and time data is correct, thanks

    M L J P 5 Replies Last reply
    0
    • R rahmat1985

      as we all know that the correct format for date and time data in sqlite is : 2014-06-18 01:00:00 my question : is there any method to validate date and time data before insert / update on sqlite, maybe when making table, to make sure date and time data is correct, thanks

      M Offline
      M Offline
      Mycroft Holmes
      wrote on last edited by
      #2

      You should be storing the data as a datetime TYPE not a string, therefore convert (TryParse) your string input to a datetime and pass it to the database in the correct data type using a paramaterised query. If it fails the tryparse it is invalid

      Never underestimate the power of human stupidity RAH

      L 1 Reply Last reply
      0
      • R rahmat1985

        as we all know that the correct format for date and time data in sqlite is : 2014-06-18 01:00:00 my question : is there any method to validate date and time data before insert / update on sqlite, maybe when making table, to make sure date and time data is correct, thanks

        L Offline
        L Offline
        Lost User
        wrote on last edited by
        #3

        rahmat1985 wrote:

        as we all know that the correct format for date and time data in sqlite is : 2014-06-18 01:00:00

        No it isn't. Dates and times should always be stored as DATETIME types, which are just numeric values. It is only when they are displayed in human readable form that they may look like that, or 18/06/2014 01:00:00 PM, or any other format that the user desires.

        1 Reply Last reply
        0
        • M Mycroft Holmes

          You should be storing the data as a datetime TYPE not a string, therefore convert (TryParse) your string input to a datetime and pass it to the database in the correct data type using a paramaterised query. If it fails the tryparse it is invalid

          Never underestimate the power of human stupidity RAH

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #4

          Mycroft Holmes wrote:

          You should be storing the data as a datetime TYPE not a string

          SQLite does not have a DATETIME datatype. I'd recommend storing it as an integer, as recommend on their website[^].

          Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

          M B 2 Replies Last reply
          0
          • R rahmat1985

            as we all know that the correct format for date and time data in sqlite is : 2014-06-18 01:00:00 my question : is there any method to validate date and time data before insert / update on sqlite, maybe when making table, to make sure date and time data is correct, thanks

            L Offline
            L Offline
            Lost User
            wrote on last edited by
            #5

            No, there isn't. You validate it in code before inserting/updating.

            Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

            1 Reply Last reply
            0
            • R rahmat1985

              as we all know that the correct format for date and time data in sqlite is : 2014-06-18 01:00:00 my question : is there any method to validate date and time data before insert / update on sqlite, maybe when making table, to make sure date and time data is correct, thanks

              J Offline
              J Offline
              jschell
              wrote on last edited by
              #6

              Steps: Choose the data type that it is actually going to be stored as. Take a value and use on of the sqllite functions to convert it to a different type. Take that value and convert it back to the original type. If they are the same then it is valid. So if you start with text, convert it to a number, then convert the number back to text and compare the original text and the final text.

              1 Reply Last reply
              0
              • L Lost User

                Mycroft Holmes wrote:

                You should be storing the data as a datetime TYPE not a string

                SQLite does not have a DATETIME datatype. I'd recommend storing it as an integer, as recommend on their website[^].

                Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

                M Offline
                M Offline
                Mycroft Holmes
                wrote on last edited by
                #7

                Eddy Vluggen wrote:

                SQLite does not have a DATETIME datatype

                Now that I did not know.

                Never underestimate the power of human stupidity RAH

                1 Reply Last reply
                0
                • L Lost User

                  Mycroft Holmes wrote:

                  You should be storing the data as a datetime TYPE not a string

                  SQLite does not have a DATETIME datatype. I'd recommend storing it as an integer, as recommend on their website[^].

                  Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

                  B Offline
                  B Offline
                  Bernhard Hiller
                  wrote on last edited by
                  #8

                  Eddy Vluggen wrote:

                  SQLite does not have a DATETIME datatype

                  Hard to believe, but true. Poor guys who have to deal with such crap!

                  L P 2 Replies Last reply
                  0
                  • B Bernhard Hiller

                    Eddy Vluggen wrote:

                    SQLite does not have a DATETIME datatype

                    Hard to believe, but true. Poor guys who have to deal with such crap!

                    L Offline
                    L Offline
                    Lost User
                    wrote on last edited by
                    #9

                    Bernhard Hiller wrote:

                    Hard to believe, but true. Poor guys who have to deal with such crap!

                    I prefer this crap over SqlCe, MS Access, XML and Excel as a single-file database. A DateTime is usually merely a double; a boolean is usually merely a bit. SQLite is lightweight; you won't find a XML, GUID nor a Spatial datatype either - because all those types can be derived from what is already there. The only thing that seemed weird is that the bool is associated with a numeric type, and not an integer-type.

                    Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

                    P 1 Reply Last reply
                    0
                    • B Bernhard Hiller

                      Eddy Vluggen wrote:

                      SQLite does not have a DATETIME datatype

                      Hard to believe, but true. Poor guys who have to deal with such crap!

                      P Offline
                      P Offline
                      PIEBALDconsult
                      wrote on last edited by
                      #10

                      Bernhard Hiller wrote:

                      have to deal with such crap

                      Seems a choice to me.

                      You'll never get very far if all you do is follow instructions.

                      1 Reply Last reply
                      0
                      • L Lost User

                        Bernhard Hiller wrote:

                        Hard to believe, but true. Poor guys who have to deal with such crap!

                        I prefer this crap over SqlCe, MS Access, XML and Excel as a single-file database. A DateTime is usually merely a double; a boolean is usually merely a bit. SQLite is lightweight; you won't find a XML, GUID nor a Spatial datatype either - because all those types can be derived from what is already there. The only thing that seemed weird is that the bool is associated with a numeric type, and not an integer-type.

                        Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

                        P Offline
                        P Offline
                        PIEBALDconsult
                        wrote on last edited by
                        #11

                        I'll stick with SqlCe when given a choice; better to have features I don't use than miss features I want. And have you looked at Sql Server LocalDB?

                        You'll never get very far if all you do is follow instructions.

                        L 1 Reply Last reply
                        0
                        • R rahmat1985

                          as we all know that the correct format for date and time data in sqlite is : 2014-06-18 01:00:00 my question : is there any method to validate date and time data before insert / update on sqlite, maybe when making table, to make sure date and time data is correct, thanks

                          P Offline
                          P Offline
                          PIEBALDconsult
                          wrote on last edited by
                          #12

                          rahmat1985 wrote:

                          as we all know

                          We don't all know that.

                          You'll never get very far if all you do is follow instructions.

                          1 Reply Last reply
                          0
                          • P PIEBALDconsult

                            I'll stick with SqlCe when given a choice; better to have features I don't use than miss features I want. And have you looked at Sql Server LocalDB?

                            You'll never get very far if all you do is follow instructions.

                            L Offline
                            L Offline
                            Lost User
                            wrote on last edited by
                            #13

                            PIEBALDconsult wrote:

                            And have you looked at Sql Server LocalDB?

                            I tried, but failed at downloading[^] it.

                            PIEBALDconsult wrote:

                            I'll stick with SqlCe when given a choice; better to have features I don't use than miss features I want.

                            So you'll be replacing all those SqlCe's with Sql-express versions? SqlCe and SQLite are a close match; but I like to run my code as well on my OpenSUSE desktop and there's no SqlCe there :)

                            Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

                            P 1 Reply Last reply
                            0
                            • L Lost User

                              PIEBALDconsult wrote:

                              And have you looked at Sql Server LocalDB?

                              I tried, but failed at downloading[^] it.

                              PIEBALDconsult wrote:

                              I'll stick with SqlCe when given a choice; better to have features I don't use than miss features I want.

                              So you'll be replacing all those SqlCe's with Sql-express versions? SqlCe and SQLite are a close match; but I like to run my code as well on my OpenSUSE desktop and there's no SqlCe there :)

                              Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

                              P Offline
                              P Offline
                              PIEBALDconsult
                              wrote on last edited by
                              #14

                              Eddy Vluggen wrote:

                              replacing all those SqlCe's with Sql-express versions

                              No. The other way around. :-D I use Express for a few things, but for one of my projects I wanted to be able to have the app on a flash drive and not require a server/service/daemon running. That way it can be carried around and used whereever. So now I allow the app to use Ce or regular Sql Server, whichever the user wants to use. All the tables and SQL statements are the same (including DATEs and GUIDs), only the Provider is different.

                              You'll never get very far if all you do is follow instructions.

                              L 1 Reply Last reply
                              0
                              • P PIEBALDconsult

                                Eddy Vluggen wrote:

                                replacing all those SqlCe's with Sql-express versions

                                No. The other way around. :-D I use Express for a few things, but for one of my projects I wanted to be able to have the app on a flash drive and not require a server/service/daemon running. That way it can be carried around and used whereever. So now I allow the app to use Ce or regular Sql Server, whichever the user wants to use. All the tables and SQL statements are the same (including DATEs and GUIDs), only the Provider is different.

                                You'll never get very far if all you do is follow instructions.

                                L Offline
                                L Offline
                                Lost User
                                wrote on last edited by
                                #15

                                ..and might even work relative happily using a different provider[^] on a Raspberry Pi :-D

                                Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • World
                                • Users
                                • Groups