To find the earliest birthday within the calendar year, sort by the month and day of the birth values
mysql>
mysql> CREATE TABLE mytable
-> (
-> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
-> name CHAR(20) NOT NULL,
-> birth DATE,
-> color ENUM('blue','red','green','brown','black','white'),
-> foods SET('lutefisk','burrito','curry','eggroll','fadge','pizza'),
-> cats INT,
-> PRIMARY KEY (id)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO mytable
-> VALUES
-> (NULL,'Jack','1970-04-13','black','eggroll,pizza,fadge',0),
-> (NULL,'Tom','1969-09-30','white','curry,eggroll,burrito',3),
-> (NULL,'Mary','1957-12-01','red','burrito,pizza,curry',1),
-> (NULL,'Jane','1973-11-02','red','pizza,eggroll',4),
-> (NULL,'Sean','1963-07-04','blue','burrito,curry',5),
-> (NULL,'Alan','1965-02-14','red',',curry,eggroll',1),
-> (NULL,'March','1968-09-17','green','fadge,lutefisk',1),
-> (NULL,'Shane','1975-09-02','black','pizza,curry',2),
-> (NULL,'Dan','1952-08-20','green','fadge,lutefisk',0),
-> (NULL,'Tony','1960-05-01','white','pizza,burrito',0)
-> ;
Query OK, 10 rows affected, 1 warning (0.00 sec)
Records: 10 Duplicates: 0 Warnings: 1
mysql>
mysql> SELECT * FROM mytable;
+----+-------+------------+-------+-----------------------+------+
| id | name | birth | color | foods | cats |
+----+-------+------------+-------+-----------------------+------+
| 1 | Jack | 1970-04-13 | black | eggroll,fadge,pizza | 0 |
| 2 | Tom | 1969-09-30 | white | burrito,curry,eggroll | 3 |
| 3 | Mary | 1957-12-01 | red | burrito,curry,pizza | 1 |
| 4 | Jane | 1973-11-02 | red | eggroll,pizza | 4 |
| 5 | Sean | 1963-07-04 | blue | burrito,curry | 5 |
| 6 | Alan | 1965-02-14 | red | curry,eggroll | 1 |
| 7 | March | 1968-09-17 | green | lutefisk,fadge | 1 |
| 8 | Shane | 1975-09-02 | black | curry,pizza | 2 |
| 9 | Dan | 1952-08-20 | green | lutefisk,fadge | 0 |
| 10 | Tony | 1960-05-01 | white | burrito,pizza | 0 |
+----+-------+------------+-------+-----------------------+------+
10 rows in set (0.00 sec)
mysql>
mysql>
mysql> SELECT name, DATE_FORMAT(birth,'%m-%e') AS birthday FROM mytable ORDER BY birthday LIMIT 1;
+------+----------+
| name | birthday |
+------+----------+
| Alan | 02-14 |
+------+----------+
1 row in set (0.00 sec)
mysql>
mysql> drop table mytable;
Query OK, 0 rows affected (0.00 sec)
mysql>
Related examples in the same category
1. | Date function: YEAR | | |
2. | Retrieve year from a date | | |
3. | Use YEAR in where clause | | |
4. | Determining the Number of Records by Day, Month, and Year | | |
5. | Extract the year part of the reference date and use normal arithmetic to add 10, 20, and 40 to it | | |
6. | The following query shows two ways to determine the date for Christmas two years hence. | | |
7. | Performing Leap Year Calculations | | |
8. | Another way to compute a year's length is to compute the date of the last day of the year and pass it to DAYOF | | |
9. | Using Leap Year Tests for Month-Length Calculations | | |
10. | February 29 of leap years and March 1 of non-leap years appear to be the same day: | | |
11. | Extract the year from a date value by using the YEAR() function: YEAR() | | |
12. | Calculate a numerical value for the day, as it falls in the year: DAYOFYEAR() | | |
13. | Add a YEAR column type | | |
14. | %m returns the month (01-12), %d returns the day (01-31), and %Y returns the year in four digits. | | |
15. | Use the YEAR() function | | |
16. | For each player, find the player number, the year in which he or she joined the club, and the player's age gro | | |
17. | Find the player number, the year in which he or she joined the club, the town where he or she lives, and a cla | | |
18. | Get the payment number and the year of each penalty paid after 1980. | | |
19. | Get the penalties that were paid between Christmas 1982 (December 25) and New Year's Eve. | | |
20. | For each player whose number is less than 60, get the number of years between the year in which that player jo | | |
21. | Get the numbers of the players who were born in the same year as player 27. | | |
22. | Get year value from date type and compare | | |
23. | Get day name, month name and day of year | | |
24. | Get the year of a date and compare | | |
25. | Get the Year value from subquery | | |
26. | Compare the year value in where clause | | |
27. | Year value in | | |
28. | Distinct year value | | |
29. | Group by year | | |
30. | HAVING MAX(YEAR(PAYMENT_DATE)) = 1984 | | |
31. | Check year value | | |
32. | ON SCHEDULE EVERY 1 YEAR | | |
33. | WHERE clause uses only part of the date column in the comparisons: | | |
34. | Performing Date Calculations | | |
35. | Calculate an age as of the beginning 1975 for someone born on 1965-03-01. | | |
36. | How old are the Smith children today? | | |
37. | Determining Ages in Months | | |