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. SQL convert(datetime, number) wrong?

SQL convert(datetime, number) wrong?

Scheduled Pinned Locked Moved Database
databasehelpquestion
13 Posts 5 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.
  • B Bernhard Hiller

    What the f...? You are right, I tested it. Look at day number 0: with SQL Server, it is Jan 1, 1900; with Excel: Jan 0, 1900. The next bug is the leap year: Excel treats 1900 as a leap year (that's wrong!), while SQL Server correctly knows that 1900 is not a leap year. In sum, those differences account for the 2 days difference in current dates.

    J Offline
    J Offline
    Jorgen Andersson
    wrote on last edited by
    #4

    Here's[^] Joels explanation.

    Wrong is evil and must be defeated. - Jeff Ello[^]

    P 1 Reply Last reply
    0
    • M Miller Nguyen

      I tried this

      select convert(datetime, 41818) as mydate

      result

      2014-06-30 00:00:00.000

      In Excel, it should be

      6/28/2014

      It's always 2 days in advance Please help! Thanks a lot

      J Offline
      J Offline
      Jorgen Andersson
      wrote on last edited by
      #5

      See my answer to Bernhard

      Wrong is evil and must be defeated. - Jeff Ello[^]

      M 1 Reply Last reply
      0
      • P PIEBALDconsult

        Why do you think it's wrong? SELECT DATEDIFF ( dd , '1900-01-01' , '2014-06-30' ) SELECT DATEADD ( dd, 41818 , '1900-01-01' )

        Miller Nguyen wrote:

        In Excel, it should be

        What do you mean "it should be" ?

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

        M Offline
        M Offline
        Miller Nguyen
        wrote on last edited by
        #6

        I don't say it's wrong, that's why I put the QUESTION MARK in the topic. I just wonder why Excel and SQL are giving different result

        1 Reply Last reply
        0
        • J Jorgen Andersson

          See my answer to Bernhard

          Wrong is evil and must be defeated. - Jeff Ello[^]

          M Offline
          M Offline
          Miller Nguyen
          wrote on last edited by
          #7

          Thanks a lot

          J 1 Reply Last reply
          0
          • M Miller Nguyen

            Thanks a lot

            J Offline
            J Offline
            Jorgen Andersson
            wrote on last edited by
            #8

            Oh, btw, have a look if this[^] and this[^] would be of any use for you.

            Wrong is evil and must be defeated. - Jeff Ello[^]

            B 1 Reply Last reply
            0
            • J Jorgen Andersson

              Oh, btw, have a look if this[^] and this[^] would be of any use for you.

              Wrong is evil and must be defeated. - Jeff Ello[^]

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

              For example, -0.5 and 0.5 both mean noon on 30 December 1899

              No, no, no! I do not want to use that function!

              J 1 Reply Last reply
              0
              • M Miller Nguyen

                I tried this

                select convert(datetime, 41818) as mydate

                result

                2014-06-30 00:00:00.000

                In Excel, it should be

                6/28/2014

                It's always 2 days in advance Please help! Thanks a lot

                G Offline
                G Offline
                GuyThiebaut
                wrote on last edited by
                #10

                I get around this, and other issues such as collation issues between SQL Server and Excel, by always passing dates to Excel as text in a format of dd-MMM-yyyy e.g. '01-Jan-2014'. It's not pretty but it has worked so far...

                “That which can be asserted without evidence, can be dismissed without evidence.”

                ― Christopher Hitchens

                1 Reply Last reply
                0
                • B Bernhard Hiller

                  For example, -0.5 and 0.5 both mean noon on 30 December 1899

                  No, no, no! I do not want to use that function!

                  J Offline
                  J Offline
                  Jorgen Andersson
                  wrote on last edited by
                  #11

                  :laugh: It's not a bug, it's a feature.

                  Wrong is evil and must be defeated. - Jeff Ello[^]

                  1 Reply Last reply
                  0
                  • J Jorgen Andersson

                    Here's[^] Joels explanation.

                    Wrong is evil and must be defeated. - Jeff Ello[^]

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

                    Yeah, as I drifted off to sleep last night I recalled that Joel had written about Excel having to support a Lotus 123 issue. :thumbsup:

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

                    J 1 Reply Last reply
                    0
                    • P PIEBALDconsult

                      Yeah, as I drifted off to sleep last night I recalled that Joel had written about Excel having to support a Lotus 123 issue. :thumbsup:

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

                      J Offline
                      J Offline
                      Jorgen Andersson
                      wrote on last edited by
                      #13

                      I love that story. They brought a fuck counter to all meetings with BillG. :laugh:

                      Wrong is evil and must be defeated. - Jeff Ello[^]

                      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