@@ -374,9 +374,9 @@ func (t timeTest) genQuery(dbtype string, mode timeMode) string {
374374 inner = `"%s"`
375375 }
376376 if len (dbtype ) >= 9 && dbtype [:9 ] == "TIMESTAMP" {
377- return `SELECT TIMESTAMPADD(SECOND ,0,CAST (` + inner + ` AS DATETIME` + dbtype [9 :] + `))`
377+ return `SELECT timestampadd(second ,0,cast (` + inner + ` as DATETIME` + dbtype [9 :] + `))`
378378 }
379- return `SELECT CAST (` + inner + ` AS ` + dbtype + `)`
379+ return `SELECT cast (` + inner + ` as ` + dbtype + `)`
380380}
381381
382382func (t timeTest ) run (dbt * DBTest , dbtype , tlayout string , mode timeMode ) {
@@ -524,16 +524,23 @@ func TestDateTime(t *testing.T) {
524524 var withFrac , allowsZero bool
525525 var rows * sql.Rows
526526 var err error
527- rows , err = dbt .db .Query (`SELECT CAST ("00:00:00.1" AS TIME(1)) = "00:00:00.1"` )
527+ rows , err = dbt .db .Query (`SELECT cast ("00:00:00.1" as TIME(1)) = "00:00:00.1"` )
528528 if err == nil {
529529 rows .Scan (& withFrac )
530530 rows .Close ()
531531 }
532- rows , err = dbt .db .Query (`SELECT CAST ("0000-00-00" AS DATE) = "0000-00-00"` )
532+ rows , err = dbt .db .Query (`SELECT cast ("0000-00-00" as DATE) = "0000-00-00"` )
533533 if err == nil {
534534 rows .Scan (& allowsZero )
535535 rows .Close ()
536536 }
537+ // Fix for TravisCI with its "special" MySQL version
538+ var datetimeAutofracs bool
539+ rows , err = dbt .db .Query (`SELECT length(concat('',cast(? as DATETIME))) != 19` , "2011-11-20 21:27:37" )
540+ if err == nil {
541+ rows .Scan (& datetimeAutofracs )
542+ rows .Close ()
543+ }
537544 for _ , setups := range testcases {
538545 if t := setups .dbtype ; ! withFrac && t [len (t )- 1 :] == ")" {
539546 // skip fractional second tests if unsupported by server
@@ -554,6 +561,9 @@ func TestDateTime(t *testing.T) {
554561 // skip disallowed 0000-00-00 date
555562 continue
556563 }
564+ if datetimeAutofracs && setups .dbtype == "DATETIME" && setup .t != t0 {
565+ continue
566+ }
557567 setup .run (dbt , setups .dbtype , setups .tlayout , textString )
558568 setup .run (dbt , setups .dbtype , setups .tlayout , binaryString )
559569 if allowBinTime {
0 commit comments