Announcement

Collapse
No announcement yet.

Syntax error converting datetime from character string.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Syntax error converting datetime from character string.

    Hallo,

    Obige Meldung kommt. Habe die Zeile herausgenommen:


    ( CONVERT(VARCHAR (255),Tbl_QCBaseData.FillingDate,126) LIKE '$FillingDate%' OR Tbl_QCBaseData.FillingDate IS NULL )

    Scheint ein Konvertierungsproblem zu sein.

    Danke für die Hilfe!

  • #2
    Mit 126 sollte dein Datenstring zB. exakt so aussehen: '2011-11-07T14:30:22.200' - tut er das?

    bye,
    Helmut

    [edit] weil erst versehentlich auf speichernl gedrückt :-)

    Comment


    • #3
      Bist du dir sicher mit der Überschrift oder hast du den falschen Codeteil gezeigt?

      Denn in deinem SQL Fragment wird to string konvertiert. Ich sehe aber kein from string. Ich nehme an FillingDate ist in der Datenbank ein DateTime.

      Comment


      • #4
        Originally posted by Ralf Jansen View Post
        Bist du dir sicher mit der Überschrift oder hast du den falschen Codeteil gezeigt?

        Denn in deinem SQL Fragment wird to string konvertiert. Ich sehe aber kein from string. Ich nehme an FillingDate ist in der Datenbank ein DateTime.
        Hier ist die vollständige Abfrage:

        SELECT Tbl_QCBaseData.ID,
        (SELECT Count(ID) FROM Tbl_Comments WHERE TableName='Tbl_QCBaseData' AND Enabled=1 AND RelatedID=Tbl_QCBaseData.ID) As COMMENT_COUNT,
        Tbl_QCBaseData.LotID AS FillingBatchNumber, Tbl_QCBaseData.FillingSize +' '+Tbl_Product.UnitOfMeasure AS FillSize,
        Tbl_QCBaseData.DueDateRelease AS DueDateInternalRelease,
        Tbl_QCBaseData.ActualDateRelease AS [Act.DateInternalRelease],
        Tbl_QCBaseData.TargetAuthority AS TargetAuthorityRelease,
        Tbl_QCBaseData.AuthoritySubmissionDate,
        Tbl_QCBaseData.AuthorityReleaseDate,
        Tbl_QCBaseData.DestinationCountry AS [DestinationCountry/Area],
        Tbl_QCBaseData.Remarks,
        Tbl_QCBaseData.ReasonDelay
        FROM Tbl_QCBaseData LEFT JOIN Tbl_Product ON Tbl_Product.ID=Tbl_QCBaseData.ProductID
        WHERE (Tbl_Product.ProductName LIKE '$ProductName' OR Tbl_Product.ProductName IS NULL)
        AND Tbl_QCBaseData.LotID LIKE '$LotID' AND Tbl_QCBaseData.FillingSize+' '+Tbl_Product.UnitOfMeasure LIKE '$FillingSize'
        AND ( CONVERT(VARCHAR (255),Tbl_QCBaseData.FillingDate,126) LIKE '$FillingDate%' OR Tbl_QCBaseData.FillingDate IS NULL )
        AND ( CONVERT(VARCHAR (255),Tbl_QCBaseData.CompletionOfManufacturing,126 ) LIKE '$CompletionOfManufacturingDate%'
        OR Tbl_QCBaseData.CompletionOfManufacturing IS NULL )
        AND ( CONVERT(VARCHAR (255),Tbl_QCBaseData.AnalyticalRelease,126) LIKE '$AnalyticalReleaseDate%'
        OR Tbl_QCBaseData.AnalyticalRelease IS NULL )
        AND ((Tbl_QCBaseData.DueDateRelease>='$DueDateReleaseF rom'
        AND Tbl_QCBaseData.DueDateRelease<='$DueDateReleaseTo' )
        OR Tbl_QCBaseData.DueDateRelease IS NULL)
        AND ((Tbl_QCBaseData.ActualDateRelease>='$ActualDateRe leaseFrom'
        AND Tbl_QCBaseData.ActualDateRelease<='$ActualDateRele aseTo')
        OR Tbl_QCBaseData.ActualDateRelease IS NULL)
        AND ( (COALESCE(CONVERT(VARCHAR(255),Tbl_QCBaseData.Docu mentationDate,120),'')>= '$DocumentationDateFrom 00:00:00'
        OR COALESCE(CONVERT(VARCHAR(255),Tbl_QCBaseData.Docum entationDate,120),'') LIKE '$DocumentationDateFrom')
        AND (COALESCE(CONVERT(VARCHAR(255),Tbl_QCBaseData.Docu mentationDate,120),'')<= '$DocumentationDateTo 23:59:59'
        OR COALESCE(CONVERT(VARCHAR(255),Tbl_QCBaseData.Docum entationDate,120),'') LIKE '$DocumentationDateTo') )
        AND Tbl_QCBaseData.TargetAuthority LIKE '$TargetAuthority'
        AND ( CONVERT(VARCHAR (255),Tbl_QCBaseData.AuthoritySubmissionDate,126) LIKE '$AuthoritySubmissionDate%'
        OR Tbl_QCBaseData.AuthoritySubmissionDate IS NULL )
        AND ( CONVERT(VARCHAR (255),Tbl_QCBaseData.AuthorityReleaseDate,126) LIKE '$AuthorityReleaseDate%'
        OR Tbl_QCBaseData.AuthorityReleaseDate IS NULL )
        AND Tbl_QCBaseData.DestinationCountry LIKE '$DestinationCountry%'
        AND Tbl_QCBaseData.DestinationCountry LIKE '$CountryDropDown%'
        AND Tbl_QCBaseData.DepartmentOfDelay LIKE '$DepartmentOfDelay'
        AND Tbl_QCBaseData.ReasonDelay LIKE '$ReasonDelay'
        AND Tbl_QCBaseData.Remarks LIKE '$Remarks'
        AND Tbl_QCBaseData.Enabled='$Enabled'

        Meldung:
        ------------
        Server: Msg 241, Level 16, State 1, Line 1
        Syntax error converting datetime from character string.

        FillingDate ist Datetime.

        Comment


        • #5
          AND ((Tbl_QCBaseData.DueDateRelease>='$DueDateReleaseF rom'
          AND Tbl_QCBaseData.DueDateRelease<='$DueDateReleaseTo' )
          OR Tbl_QCBaseData.DueDateRelease IS NULL)
          AND ((Tbl_QCBaseData.ActualDateRelease>='$ActualDateRe leaseFrom'
          AND Tbl_QCBaseData.ActualDateRelease<='$ActualDateRele aseTo')
          Wenn ActualDateRelease und/oder DueDateRelease in der Datenbank DateTimes sind wird dein übergebener String automatisch in einen DateTime konvertiert.
          Aus dieser Ecke könnte ich mir die von dir beobachtete Fehlermeldung vorstellen.

          Ich würde dir aber raten im passenden Programmiersprachenforum der Sprache die du verwendest nochmal nachzufragen wie man Parameter verwenden. Deine Stringbastelei ist einmal schwer lesbar und dazu noch performancemäßig problematisch da so wie du jetzt vorgehst auf keiner deiner Spalten ein Index ziehen kann. Sobald du Parameter verwendest sollte Formatierung dann auch kein Problem mehr sein.

          Comment

          Working...
          X