Given is data which contains a period of time, spanning years. Just like this:

```
| ID | Name               | Alive                 |
|----|--------------------|-----------------------|
| 1  | Washington, George | 1732-02-22/1799-12-14 |
| 2  | Adams, John        | 1735-10-30/1826-07-04 |
| 3  | Jefferson, Thomas  | 1743-04-13/1826-07-04 |
  …

```

Is it possible to store this data in MySQL in a way that a search for an intermediate date (over all fields, just a year), like the search term `1788`, yields results?

What I am looking for is something like this:

```
CREATE TABLE t (
    id INT NOT NULL,
    name VARCHAR(30),
    alive DATERANGE
);

SELECT * FROM t WHERE * LIKE '%1788%'

```

The only solution I see is to add another column which contains a list of years, (`1732,1733,`…) but I guess there are better solutions. Do I need the date in one field or twos, and what’s the column type I need for this to work? Can I have under specified date ranges in that column (such as `1155/1227`) or do I have to rewrite them before insert (like `1155-01-01/1227-12-31`)?

Border matches shall be returned as well. A search for the string `1799` should still return George Washington, even though he was not alive from 1st of January until 31st of December inclusively. I guess this is rather simple since it is a string match already.