```
SELECT toStartOfDay(yesterday())


Received exception from server (version 20.10.1):
Code: 43. DB::Exception: Received from localhost:9000. DB::Exception: Function toStartOfDay supports a 2nd argument (optional) that must be non-empty and be a valid time zone.


SELECT toStartOfDay(today())


Received exception from server (version 20.10.1):
Code: 43. DB::Exception: Received from localhost:9000. DB::Exception: Function toStartOfDay supports a 2nd argument (optional) that must be non-empty and be a valid time zone.

```
because of https://github.com/ClickHouse/ClickHouse/pull/14509
#include <DataTypes/DataTypeDate.h>
#include <DataTypes/DataTypeDateTime.h>
#include <Functions/IFunctionImpl.h>
#include <DataTypes/DataTypeDateTime64.h>
#include <Functions/extractTimeZoneFromFunctionArguments.h>
#include <Functions/DateTimeTransforms.h>
#include <IO/WriteHelpers.h>
namespace DB
{
namespace ErrorCodes
{
    extern const int ILLEGAL_TYPE_OF_ARGUMENT;
    extern const int NUMBER_OF_ARGUMENTS_DOESNT_MATCH;
}
template <typename ToDataType, typename Transform>
class FunctionDateOrDateTimeToSomething : public IFunction
{
public:
    static constexpr auto name = Transform::name;
    static FunctionPtr create(const Context &) { return std::make_shared<FunctionDateOrDateTimeToSomething>(); }
    String getName() const override