What you're describing is called a relational division. There is no operator in SQL for this.
There are two common solutions.
The first solution is to do a self-join for each of the values you're looking for. That way you can write an expression in the WHERE clause that references the same column and compares for three different values.
SELECT t1.time_entry_id
FROM table_like_this t1
JOIN table_like_this t2 USING (time_entry_id)
JOIN table_like_this t3 USING (time_entry_id)
WHERE t1.tag_id = 1 AND t2.tag_id = 2 AND t3.tag_id = 3;
The second solution is to find all rows with any of the values you're looking for, and if you find a group of such rows that includes all three, then the group passes your relational division search.
SELECT time_entry_id
FROM table_like_this
WHERE tag_id IN (1,2,3)
GROUP BY time_entry_id
HAVING COUNT(DISTINCT tag_id) = 3;