>Description: This is a simple bug with dates and 'between' operator. Full data is supported below, but for the start I show the very essence of the problem. I use the latest stable version of MySQL - 3.23.52.
SELECT weeks.ix FROM team, weeks WHERE team.ix=6 AND weeks.start > team.ctime AND weeks.start < DATE_ADD(team.ctime, INTERVAL 7 DAY); returns 1 row; SELECT weeks.ix FROM team, weeks WHERE team.ix=6 AND (weeks.start BETWEEN team.ctime AND DATE_ADD(team.ctime, INTERVAL 7 DAY)); ... is supposed to do the same as the first command - but it does return no rows. Interestingly, replacing team.ctime with NOW() removes the problem: SELECT weeks.ix FROM weeks WHERE (weeks.start BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY)); ... it returns one row, as it is supposed to. So, the problems seems to be related somehow to selected date columns used together with BETWEEN operator. >How-To-Repeat: This is full log of operations, as they were requested in the manual: Logging to file 'bugreport' mysql> use sok; Database changed mysql> show variables; +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ | Variable_name | Value | | | +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ | back_log | 50 | | | | basedir | /usr/local/mysql/ | | | | binlog_cache_size | 32768 | | | | character_set | latin2 | | | | character_sets | latin1 dec8 dos german1 hp8 koi8_ru latin2 swe7 |usa7 cp1251 danish hebrew win1251 estonia hungarian koi8_ukr win1251ukr greek win1250 |croat cp1257 latin5 | | concurrent_insert | ON | | | | connect_timeout | 5 | | | | datadir | /usr/local/mysql/var/ | | | | delay_key_write | ON | | | | delayed_insert_limit | 100 | | | | delayed_insert_timeout | 300 | | | | delayed_queue_size | 1000 | | | | flush | OFF | | | | flush_time | 0 | | | | have_bdb | NO | | | | have_gemini | NO | | | | have_innodb | NO | | | | have_isam | YES | | | | have_raid | NO | | | | have_openssl | NO | | | | init_file | | | | | interactive_timeout | 28800 | | | | join_buffer_size | 131072 | | | | key_buffer_size | 12288 | | | | language | /usr/local/mysql/share/mysql/english/ | | | | large_files_support | ON | | | | locked_in_memory | OFF | | | | log | OFF | | | | log_update | OFF | | | | log_bin | OFF | | | | log_slave_updates | OFF | | | | log_long_queries | OFF | | | | long_query_time | 10 | | | | low_priority_updates | OFF | | | | lower_case_table_names | 0 | | | | max_allowed_packet | 1047552 | | | | max_binlog_cache_size | 4294967295 | | | | max_binlog_size | 1073741824 | | | | max_connections | 100 | | | | max_connect_errors | 10 | | | | max_delayed_threads | 20 | | | | max_heap_table_size | 16777216 | | | | max_join_size | 4294967295 | | | | max_sort_length | 1024 | | | | max_user_connections | 0 | | | | max_tmp_tables | 32 | | | | max_write_lock_count | 4294967295 | | | | myisam_max_extra_sort_file_size | 256 | | | | myisam_max_sort_file_size | 2047 | | | | myisam_recover_options | 0 | | | | myisam_sort_buffer_size | 8388608 | | | | net_buffer_length | 1024 | | | | net_read_timeout | 30 | | | | net_retry_count | 10 | | | | net_write_timeout | 60 | | | | open_files_limit | 0 | | | | pid_file | /usr/local/mysql/var/konsument.pid | | | | port | 0 | | | | protocol_version | 10 | | | | record_buffer | 131072 | | | | record_rnd_buffer | 131072 | | | | query_buffer_size | 0 | | | | safe_show_database | OFF | | | | server_id | 1 | | | | slave_net_timeout | 3600 | | | | skip_locking | ON | | | | skip_networking | ON | | | | skip_show_database | OFF | | | | slow_launch_time | 2 | | | | socket | /tmp/mysql.sock | | | | sort_buffer | 65528 | | | | sql_mode | 0 | | | | table_cache | 4 | | | | table_type | MYISAM | | | | thread_cache_size | 0 | | | | thread_stack | 65536 | | | | transaction_isolation | READ-COMMITTED | | | | timezone | CEST | | | | tmp_table_size | 33554432 | | | | tmpdir | /tmp/ | | | | version | 3.23.52 | | | | wait_timeout | 28800 | | | +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 82 rows in set (0.00 sec) mysql> show columns from team\G *************************** 1. row *************************** Field: ix Type: smallint(5) unsigned Null: Key: PRI Default: NULL Extra: auto_increment *************************** 2. row *************************** Field: nazwa Type: tinyblob Null: Key: Default: Extra: *************************** 3. row *************************** Field: opis Type: blob Null: Key: Default: Extra: *************************** 4. row *************************** Field: szef Type: smallint(5) unsigned Null: Key: UNI Default: 0 Extra: *************************** 5. row *************************** Field: ctime Type: timestamp(14) Null: YES Key: Default: NULL Extra: *************************** 6. row *************************** Field: start_pts Type: smallint(5) unsigned Null: Key: Default: 0 Extra: *************************** 7. row *************************** Field: current_pts Type: smallint(5) unsigned Null: Key: Default: 0 Extra: *************************** 8. row *************************** Field: flags Type: set('A','B','C','D','closed','global') Null: Key: Default: Extra: *************************** 9. row *************************** Field: visual Type: enum('boss','team','all') Null: Key: Default: boss Extra: 9 rows in set (0.00 sec) mysql> show columns from weeks\G *************************** 1. row *************************** Field: ix Type: tinyint(3) unsigned Null: Key: PRI Default: 0 Extra: *************************** 2. row *************************** Field: start Type: datetime Null: Key: UNI Default: 0000-00-00 00:00:00 Extra: 2 rows in set (0.00 sec) mysql> select weeks.ix from team, weeks where team.ix=6 and weeks.start > team.ctime and weeks.start < date_add(team.ctime, interval 7 day); +----+ | ix | +----+ | 43 | +----+ 1 row in set (0.00 sec) mysql> flush status; Query OK, 0 rows affected (0.00 sec) mysql> select weeks.ix from team, weeks where team.ix=6 and weeks.start between team.ctime and date_add(team.ctime, interval 7 day); Empty set (0.00 sec) mysql> show status; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | Aborted_clients | 0 | | Aborted_connects | 0 | | Bytes_received | 145 | | Bytes_sent | 45 | | Com_admin_commands | 0 | | Com_alter_table | 0 | | Com_analyze | 0 | | Com_backup_table | 0 | | Com_begin | 0 | | Com_change_db | 0 | | Com_change_master | 0 | | Com_check | 0 | | Com_commit | 0 | | Com_create_db | 0 | | Com_create_function | 0 | | Com_create_index | 0 | | Com_create_table | 0 | | Com_delete | 0 | | Com_drop_db | 0 | | Com_drop_function | 0 | | Com_drop_index | 0 | | Com_drop_table | 0 | | Com_flush | 0 | | Com_grant | 0 | | Com_insert | 0 | | Com_insert_select | 0 | | Com_kill | 0 | | Com_load | 0 | | Com_load_master_table | 0 | | Com_lock_tables | 0 | | Com_optimize | 0 | | Com_purge | 0 | | Com_rename_table | 0 | | Com_repair | 0 | | Com_replace | 0 | | Com_replace_select | 0 | | Com_reset | 0 | | Com_restore_table | 0 | | Com_revoke | 0 | | Com_rollback | 0 | | Com_select | 1 | | Com_set_option | 0 | | Com_show_binlogs | 0 | | Com_show_create | 0 | | Com_show_databases | 0 | | Com_show_fields | 0 | | Com_show_grants | 0 | | Com_show_keys | 0 | | Com_show_logs | 0 | | Com_show_master_status | 0 | | Com_show_open_tables | 0 | | Com_show_processlist | 0 | | Com_show_slave_status | 0 | | Com_show_status | 1 | | Com_show_innodb_status | 0 | | Com_show_tables | 0 | | Com_show_variables | 0 | | Com_slave_start | 0 | | Com_slave_stop | 0 | | Com_truncate | 0 | | Com_unlock_tables | 0 | | Com_update | 0 | | Connections | 34 | | Created_tmp_disk_tables | 0 | | Created_tmp_tables | 0 | | Created_tmp_files | 0 | | Delayed_insert_threads | 0 | | Delayed_writes | 0 | | Delayed_errors | 0 | | Flush_commands | 1 | | Handler_delete | 0 | | Handler_read_first | 0 | | Handler_read_key | 1 | | Handler_read_next | 0 | | Handler_read_prev | 0 | | Handler_read_rnd | 0 | | Handler_read_rnd_next | 16 | | Handler_update | 0 | | Handler_write | 0 | | Key_blocks_used | 9 | | Key_read_requests | 1 | | Key_reads | 0 | | Key_write_requests | 0 | | Key_writes | 0 | | Max_used_connections | 0 | | Not_flushed_key_blocks | 0 | | Not_flushed_delayed_rows | 0 | | Open_tables | 4 | | Open_files | 7 | | Open_streams | 0 | | Opened_tables | 0 | | Questions | 244 | | Select_full_join | 0 | | Select_full_range_join | 0 | | Select_range | 0 | | Select_range_check | 0 | | Select_scan | 1 | | Slave_running | OFF | | Slave_open_temp_tables | 0 | | Slow_launch_threads | 0 | | Slow_queries | 0 | | Sort_merge_passes | 0 | | Sort_range | 0 | | Sort_rows | 0 | | Sort_scan | 0 | | Table_locks_immediate | 2 | | Table_locks_waited | 0 | | Threads_cached | 0 | | Threads_created | 33 | | Threads_connected | 1 | | Threads_running | 1 | | Uptime | 4554 | +--------------------------+-------+ 112 rows in set (0.00 sec) mysql> explain select weeks.ix from team, weeks where team.ix=6 and weeks.start > team.ctime and weeks.start < date_add(team.ctime, interval 7 day); +-------+-------+---------------+---------+---------+-------+------+------------+ | table | type | possible_keys | key | key_len | ref | rows | Extra | +-------+-------+---------------+---------+---------+-------+------+------------+ | team | const | PRIMARY | PRIMARY | 2 | const | 1 | | | weeks | range | start | start | 8 | NULL | 15 | where used | +-------+-------+---------------+---------+---------+-------+------+------------+ 2 rows in set (0.00 sec) mysql> explain select weeks.ix from team, weeks where team.ix=6 and weeks.start between team.ctime and date_add(team.ctime, interval 7 day); +-------+-------+---------------+---------+---------+-------+------+------------+ | table | type | possible_keys | key | key_len | ref | rows | Extra | +-------+-------+---------------+---------+---------+-------+------+------------+ | team | const | PRIMARY | PRIMARY | 2 | const | 1 | | | weeks | ALL | start | NULL | NULL | NULL | 15 | where used | +-------+-------+---------------+---------+---------+-------+------+------------+ 2 rows in set (0.00 sec) mysql> notee Logging to file 'bugreport2' mysql> select * from team where ix=6\G *************************** 1. row *************************** ix: 6 nazwa: Wykłady opis: Nie jest to prawdziwy zespół. Służy do odnototywania faktu obecności na walnych zgromadzeniach. szef: 1 ctime: 20021021104000 start_pts: 1500 current_pts: 0 flags: A,B,C,D visual: boss 1 row in set (0.00 sec) mysql> select * from weeks; +----+---------------------+ | ix | start | +----+---------------------+ | 40 | 2002-10-07 00:00:00 | | 41 | 2002-10-14 00:00:00 | | 42 | 2002-10-21 00:00:00 | | 43 | 2002-10-28 00:00:00 | | 44 | 2002-11-04 00:00:00 | | 45 | 2002-11-11 00:00:00 | | 46 | 2002-11-18 00:00:00 | | 47 | 2002-11-25 00:00:00 | | 48 | 2002-12-02 00:00:00 | | 49 | 2002-12-09 00:00:00 | | 50 | 2002-12-16 00:00:00 | | 51 | 2002-12-23 00:00:00 | | 52 | 2002-12-30 00:00:00 | | 53 | 2003-01-06 00:00:00 | | 54 | 2003-01-13 00:00:00 | +----+---------------------+ 15 rows in set (0.01 sec) mysql> notee >Submitter-Id: <submitter ID> >Originator: Jakub Szewczyk >MySQL support: none >Synopsis: BETWEEN with dates doesn't return rows, while < and > operators do work >Severity: non-critical >Priority: low >Category: mysql >Class: sw-bug >Release: mysql-3.23.52 (Source distribution) >Environment: <machine, os, target, libraries (multiple lines)> System: Linux konsument 2.2.22 #4 Tue Oct 1 03:32:18 CEST 2002 i586 unknown Architecture: i586 Some paths: /usr/local/bin/perl /usr/bin/make /usr/local/bin/gcc GCC: Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnu/3.2/specs Configured with: ../gcc-3.2/configure --enable-languages=c,c++ --enable-shared Thread model: posix gcc version 3.2 Compilation info: CC='gcc' CFLAGS='-O3 -mcpu=pentium -fomit-frame-pointer' CXX='g++' CXXFLAGS='-O3 -mcpu=pentium -felide-constructors -fno-exceptions -fno-rtti' LDFLAGS='' LIBC: lrwxrwxrwx 1 root root 13 Sep 29 03:28 /lib/libc.so.6 -> libc-2.2.5.so -rwxr-xr-x 1 root root 1153784 Apr 28 11:57 /lib/libc-2.2.5.so -rw-r--r-- 1 root root 2390922 Apr 28 11:58 /usr/lib/libc.a -rw-r--r-- 1 root root 178 Apr 28 11:58 /usr/lib/libc.so Configure command: ./configure --prefix=/usr/local/mysql --without-debug --without-readline --with-extra-charset=latin2 'CFLAGS=-O3 -mcpu=pentium -fomit-frame-pointer' 'CXXFLAGS=-O3 -mcpu=pentium -felide-constructors -fno-exceptions -fno-rtti' With regards, Jakub Szewczyk --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php