g | x | w | all
Bytes Lang Time Link
040Retina 0.8.2240928T155712ZNeil
004Vyxal240928T110813Zemanresu
030Google Sheets240928T083728Zdoubleun

Retina 0.8.2, 40 bytes

O^`
O`,.+
1G`
.+
$&;
O`.+?[,;]
G`;$
,.+

Try it online! Takes comma separated ISO local date time pairs on separate lines and outputs one of the date times or nothing if no valid date time can be found but link is to test suite which splits on semicolons for convenience. Explanation: Port of @doubleunary's spreadsheet answer.

O^`

Sort the date pairs in reverse, so that the maximum start date is first.

O`,.+

Sort the ends of each pair only, so that the minimum end date is also first.

1G`

Keep just the maximum start date and minimum end date.

.+
$&;

Append a semicolon if the input is not empty (to handle the special case of an empty input, which produces an empty and thus falsy output).

O`.+?[,;]

Sort the maximum start date and minimum end date.

G`;$

Delete the input if the dates were out of order.

,.+

Delete the minimum end date.

Vyxal, 4 bytes

ṡƒ↔h

Try it Online!

As per noodle man's comment, this is just finding a single value within all the ranges, if one exists (and Vyxal indeed does not have a datetime datatype). Returns 0 if it can't find one. Takes input as [range starts], [range ends].

ṡ    # Transform the inputs into ranges
 ƒ↔  # Take their intersection
   h # Take the first value

Google Sheets, 30 bytes

=(max(A:A)<=min(B:B))*max(A:A)

Put the start datetimes in column A, end datetimes in column B, and the formula in cell C2.

Falsey is represented by the dateserial 0. This value is shown as 1899/12/30 0:00:00 when formatted as datetime. To show FALSE instead, use if() (32 bytes):

=if(max(A:A)<=min(B:B),max(A:A))

screenshot