ClickHouse/dbms/include/DB/DataTypes/DataTypeDateTime.h

59 lines
1.2 KiB
C
Raw Normal View History

2011-08-07 02:08:22 +00:00
#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"; }
2011-08-09 19:19:00 +00:00
DataTypePtr clone() const { return new DataTypeDateTime; }
2011-08-07 02:08:22 +00:00
void serializeText(const Field & field, WriteBuffer & ostr) const
{
writeDateTimeText(get<UInt64>(field), ostr);
2011-08-07 02:08:22 +00:00
}
void deserializeText(Field & field, ReadBuffer & istr) const
{
time_t x;
readDateTimeText(x, istr);
2011-08-07 03:42:36 +00:00
field = NearestFieldType<UInt32>::Type(x);
2011-08-07 02:08:22 +00:00
}
void serializeTextEscaped(const Field & field, WriteBuffer & ostr) const
{
serializeText(field, ostr);
}
void deserializeTextEscaped(Field & field, ReadBuffer & istr) const
{
deserializeText(field, istr);
}
2012-08-26 06:48:39 +00:00
void serializeTextQuoted(const Field & field, WriteBuffer & ostr) const
2011-08-07 02:08:22 +00:00
{
writeChar('\'', ostr);
serializeText(field, ostr);
writeChar('\'', ostr);
}
2012-08-26 06:48:39 +00:00
void deserializeTextQuoted(Field & field, ReadBuffer & istr) const
2011-08-07 02:08:22 +00:00
{
assertString("'", istr);
deserializeText(field, istr);
assertString("'", istr);
}
};
}