@@ -506,6 +506,94 @@ public function testSelectIndexHintUseGroup() {
506
506
$ this ->assertEquals ( 1 , $ result [0 ]->output );
507
507
}
508
508
509
+ public function testDateAddFunction () {
510
+ // second
511
+ $ result = $ this ->assertQuery (
512
+ 'SELECT DATE_ADD("2008-01-02 13:29:17", INTERVAL 1 SECOND) as output '
513
+ );
514
+ $ this ->assertEquals ( '2008-01-02 13:29:18 ' , $ result [0 ]->output );
515
+
516
+ // minute
517
+ $ result = $ this ->assertQuery (
518
+ 'SELECT DATE_ADD("2008-01-02 13:29:17", INTERVAL 1 MINUTE) as output '
519
+ );
520
+ $ this ->assertEquals ( '2008-01-02 13:30:17 ' , $ result [0 ]->output );
521
+
522
+ // hour
523
+ $ result = $ this ->assertQuery (
524
+ 'SELECT DATE_ADD("2008-01-02 13:29:17", INTERVAL 1 HOUR) as output '
525
+ );
526
+ $ this ->assertEquals ( '2008-01-02 14:29:17 ' , $ result [0 ]->output );
527
+
528
+ // day
529
+ $ result = $ this ->assertQuery (
530
+ 'SELECT DATE_ADD("2008-01-02 13:29:17", INTERVAL 1 DAY) as output '
531
+ );
532
+ $ this ->assertEquals ( '2008-01-03 13:29:17 ' , $ result [0 ]->output );
533
+
534
+ // week
535
+ $ result = $ this ->assertQuery (
536
+ 'SELECT DATE_ADD("2008-01-02 13:29:17", INTERVAL 1 WEEK) as output '
537
+ );
538
+ $ this ->assertEquals ( '2008-01-09 13:29:17 ' , $ result [0 ]->output );
539
+
540
+ // month
541
+ $ result = $ this ->assertQuery (
542
+ 'SELECT DATE_ADD("2008-01-02 13:29:17", INTERVAL 1 MONTH) as output '
543
+ );
544
+ $ this ->assertEquals ( '2008-02-02 13:29:17 ' , $ result [0 ]->output );
545
+
546
+ // year
547
+ $ result = $ this ->assertQuery (
548
+ 'SELECT DATE_ADD("2008-01-02 13:29:17", INTERVAL 1 YEAR) as output '
549
+ );
550
+ $ this ->assertEquals ( '2009-01-02 13:29:17 ' , $ result [0 ]->output );
551
+ }
552
+
553
+ public function testDateSubFunction () {
554
+ // second
555
+ $ result = $ this ->assertQuery (
556
+ 'SELECT DATE_SUB("2008-01-02 13:29:17", INTERVAL 1 SECOND) as output '
557
+ );
558
+ $ this ->assertEquals ( '2008-01-02 13:29:16 ' , $ result [0 ]->output );
559
+
560
+ // minute
561
+ $ result = $ this ->assertQuery (
562
+ 'SELECT DATE_SUB("2008-01-02 13:29:17", INTERVAL 1 MINUTE) as output '
563
+ );
564
+ $ this ->assertEquals ( '2008-01-02 13:28:17 ' , $ result [0 ]->output );
565
+
566
+ // hour
567
+ $ result = $ this ->assertQuery (
568
+ 'SELECT DATE_SUB("2008-01-02 13:29:17", INTERVAL 1 HOUR) as output '
569
+ );
570
+ $ this ->assertEquals ( '2008-01-02 12:29:17 ' , $ result [0 ]->output );
571
+
572
+ // day
573
+ $ result = $ this ->assertQuery (
574
+ 'SELECT DATE_SUB("2008-01-02 13:29:17", INTERVAL 1 DAY) as output '
575
+ );
576
+ $ this ->assertEquals ( '2008-01-01 13:29:17 ' , $ result [0 ]->output );
577
+
578
+ // week
579
+ $ result = $ this ->assertQuery (
580
+ 'SELECT DATE_SUB("2008-01-02 13:29:17", INTERVAL 1 WEEK) as output '
581
+ );
582
+ $ this ->assertEquals ( '2007-12-26 13:29:17 ' , $ result [0 ]->output );
583
+
584
+ // month
585
+ $ result = $ this ->assertQuery (
586
+ 'SELECT DATE_SUB("2008-01-02 13:29:17", INTERVAL 1 MONTH) as output '
587
+ );
588
+ $ this ->assertEquals ( '2007-12-02 13:29:17 ' , $ result [0 ]->output );
589
+
590
+ // year
591
+ $ result = $ this ->assertQuery (
592
+ 'SELECT DATE_SUB("2008-01-02 13:29:17", INTERVAL 1 YEAR) as output '
593
+ );
594
+ $ this ->assertEquals ( '2007-01-02 13:29:17 ' , $ result [0 ]->output );
595
+ }
596
+
509
597
public function testLeftFunction1Char () {
510
598
$ result = $ this ->assertQuery (
511
599
'SELECT LEFT("abc", 1) as output '
0 commit comments