Code:
UPDATE b
SET b.date = ( SELECT date FROM a WHERE b.name = a.name )
WHERE EXISTS ( SELECT date FROM a WHERE b.name = a.name )
Note that there must be at most one tuple in table A for each tuple in table B. Otherwise, you will have to specify which row in A should be used to update a row in B.
Specific products may have other facilities like MERGE statements or the ability to update something based on an updatable result set. For example:
Code:
UPDATE ( SELECT b.name, b.date, ( SELECT a.date FROM a WHERE a.name = b.name ) AS a_date FROM b )
SET date = a_date
WHERE a_date IS NOT NULL