mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-22 08:20:48 +00:00
59 lines
1.2 KiB
C++
59 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <DB/IO/ReadHelpers.h>
|
|
#include <DB/IO/WriteHelpers.h>
|
|
|
|
#include <DB/Columns/ColumnsNumber.h>
|
|
#include <DB/DataTypes/IDataTypeNumberFixed.h>
|
|
|
|
|
|
namespace DB
|
|
{
|
|
|
|
class DataTypeDateTime : public IDataTypeNumberFixed<UInt32, ColumnUInt32>
|
|
{
|
|
public:
|
|
DataTypeDateTime() {}
|
|
|
|
std::string getName() const { return "DateTime"; }
|
|
DataTypePtr clone() const { return new DataTypeDateTime; }
|
|
|
|
void serializeText(const Field & field, WriteBuffer & ostr) const
|
|
{
|
|
writeDateTimeText(boost::get<UInt64>(field), ostr);
|
|
}
|
|
|
|
void deserializeText(Field & field, ReadBuffer & istr) const
|
|
{
|
|
time_t x;
|
|
readDateTimeText(x, istr);
|
|
field = NearestFieldType<UInt32>::Type(x);
|
|
}
|
|
|
|
void serializeTextEscaped(const Field & field, WriteBuffer & ostr) const
|
|
{
|
|
serializeText(field, ostr);
|
|
}
|
|
|
|
void deserializeTextEscaped(Field & field, ReadBuffer & istr) const
|
|
{
|
|
deserializeText(field, istr);
|
|
}
|
|
|
|
void serializeTextQuoted(const Field & field, WriteBuffer & ostr) const
|
|
{
|
|
writeChar('\'', ostr);
|
|
serializeText(field, ostr);
|
|
writeChar('\'', ostr);
|
|
}
|
|
|
|
void deserializeTextQuoted(Field & field, ReadBuffer & istr) const
|
|
{
|
|
assertString("'", istr);
|
|
deserializeText(field, istr);
|
|
assertString("'", istr);
|
|
}
|
|
};
|
|
|
|
}
|