**Describe the bug**
When using the HTTP protocol with DateTime64 types, numerical timestamps in milliseconds do not parse correctly. This is an issue when using the Clickhouse JDBC driver with Avro Kafka records because the timestamps are integers. 

**How to reproduce**
I'm using the following CH version: yandex/clickhouse-server:20.4.5.36

Create a sample table with: 
```sql
create table tst(ts DateTime64(3)) engine TinyLog();
```

Attempt to insert millisecond timestamp into the column:
```bash
echo "1596215121682" | http -v :8123 query=="insert into tst format TSV"
```

Error:
```bash
Code: 27, e.displayText() = DB::Exception: Cannot parse input: expected '\n' before: '682\n': (at row 1)

Row 1:
Column 0,   name: ts, type: DateTime64(3), parsed text: "1596215121"
ERROR: garbage after DateTime64(3): "682<LINE FEED>"

 (version 20.4.5.36 (official build))
```

Oddly, specifying a raw query, this works:
```bash
echo 'insert into tst values(1596215121682)' | curl 'http://localhost:8123/' --data-binary @-
```
Result:
```bash
SELECT *
FROM tst

┌──────────────────────ts─┐
│ 2020-07-31 17:05:21.682 │
└─────────────────────────┘
```



**Expected behavior**
I expect to be able to insert integer millisecond timestamps using the HTTP batch insert protocol. 

Again, this issue is preventing us from using the Clickhouse JDBC driver because it fails to parse our Avro records from Kafka.

Appreciate the help!

*   or double: " if FormatSettings::CSV::allow_double_quotes is true;
  * - or string could be unquoted - this is determined by first character;
  * - if string is unquoted, then it is read until next delimiter,
  *   either until end of line (CR or LF),
  *   or until end of stream;
  *   but spaces and tabs at begin and end of unquoted string are consumed but ignored (note that this behaviour differs from RFC).
  * - if string is in quotes, then it will be read until closing quote,
  *   but sequences of two consecutive quotes are parsed as single quote inside string;
  */
void readCSVString(String & s, ReadBuffer & buf, const FormatSettings::CSV & settings);
template <typename Vector>
void readStringInto(Vector & s, ReadBuffer & buf);
template <typename Vector>
void readNullTerminated(Vector & s, ReadBuffer & buf);
template <typename Vector>
void readEscapedStringInto(Vector & s, ReadBuffer & buf);
template <bool enable_sql_style_quoting, typename Vector>
void readQuotedStringInto(Vector & s, ReadBuffer & buf);
template <bool enable_sql_style_quoting, typename Vector>
void readDoubleQuotedStringInto(Vector & s, ReadBuffer & buf);
template <bool enable_sql_style_quoting, typename Vector>
void readBackQuotedStringInto(Vector & s, ReadBuffer & buf);
template <typename Vector>
void readStringUntilEOFInto(Vector & s, ReadBuffer & buf);
template <typename Vector>
void readCSVStringInto(Vector & s, ReadBuffer & buf, const FormatSettings::CSV & settings);
template <typename Vector, typename ReturnType = void>
ReturnType readJSONStringInto(Vector & s, ReadBuffer & buf);
template <typename Vector>
bool tryReadJSONStringInto(Vector & s, ReadBuffer & buf)