SQL-like query language for csv

Cast Functions

name description
STRING Convert a value to a string
INTEGER Convert a value to an integer
FLOAT Convert a value to a float
DATETIME Convert a value to a datetime
BOOLEAN Convert a value to a boolean
TERNARY Convert a value to a ternary

Definitions

STRING

STRING(value)
value
value
return
string

Convert value to a string.

Type Value after conversion
Integer String representing a decimal integer
Float String representing a floating-point decimal
Datetime String formatted with RFC3339 with Nano Seconds
Boolean ‘true’ or ‘false’
Ternary ‘TRUE’, ‘FALSE’ and ‘UNKNOWN’
Null Null

INTEGER

INTEGER(value)
value
value
return
integer

Convert value to an integer.

Type Value Value after conversion
String Representation of a decimal integer Integer represented by the string
  Representation of a floating-point decimal or its exponential notation Integer with decimal places rounded down
  Other values Null
Float +Inf, -Inf, NaN Null
  Other values Integer with decimal places rounded down
Datetime   Integer representing its unix time
Boolean   Null
Ternary   Null
Null   Null

FLOAT

FLOAT(value)
value
value
return
float

Convert value to a float.

Type Value Value after conversion
String Representation of a floating-point decimal or its exponential notation Float represented by the string
  ‘Inf’, ‘+Inf’ +Inf
  ‘-Inf’ -Inf
  ‘NaN’ NaN
  Other values Null
Integer   Float equivalent to the integer
Datetime   Float representing its unix time
Boolean   Null
Ternary   Null
Null   Null

DATETIME

DATETIME(value [, timezone])
value
value
timezone
string

Local, UTC or a timezone name in the IANA TimeZone database(in the form of “Area/Location”. e.g. “America/Los_Angeles”). The default is the timezone set to the flag @@TIMEZONE.

See: –timezone option

return
datetime

Convert value to a datetime.

Type Value Value after conversion
String Datetime Formats Datetime represented by the string
  Representation of a decimal integer Datetime represented by the integer value as a unix time
  Representation of a floating-point decimal or its exponential notation Datetime represented by the float value as a unix time
  Other values Null
Integer   Datetime represented by the integer value as a unix time
Float +Inf, -Inf, NaN Null
  Other values Datetime represented by the float value as a unix time
Boolean   Null
Ternary   Null
Null   Null

Format of string to be interpreted as datetime

Strings of the form passed by the –datetime-format option and defined in the configuration files, or the following forms can be converted to datetime values.

DateFormat Example
YYYY-MM-DD 2012-03-15
YYYY/MM/DD 2012/03/15
YYYY-M-D 2012-3-15
YYYY/M/D 2012/3/15

 

DatetimeFormat Example
DateFormat 2012-03-15
DateFormat hh:mm:ss(.NanoSecods) 2012-03-15 12:03:01
2012-03-15 12:03:01.123456789
DateFormat hh:mm:ss(.NanoSecods) ±hh:mm 2012-03-15 12:03:01 -07:00
DateFormat hh:mm:ss(.NanoSecods) ±hhmm 2012-03-15 12:03:01 -0700
DateFormat hh:mm:ss(.NanoSecods) TimeZone 2012-03-15 12:03:01 PST
YYYY-MM-DDThh:mm:ss(.NanoSeconds) 2012-03-15T12:03:01
RFC3339 2012-03-15T12:03:01-07:00
RFC3339 with Nano Seconds 2012-03-15T12:03:01.123456789-07:00
RFC822 03 Mar 12 12:03 PST
RFC822 with Numeric Zone 03 Mar 12 12:03 -0700

Timezone abbreviations such as “PST” may not work properly depending on your environment, so you should use timezone offset such as “-07:00” as possible.

BOOLEAN

BOOLEAN(value)
value
value
boolean
boolean

Convert value to a boolean.

Type Value Value after conversion
String ‘1’, ‘t’, ‘true’ true
String ‘0’, ‘f’, ‘false’ false
String Other values Null
Integer 1 true
Integer 0 false
Integer Other values Null
Float 1 true
Float 0 false
Float Other values Null
Datetime   Null
Ternary TRUE true
  FALSE false
  UNKNOWN Null
Null   Null

TERNARY

TERNARY(value)
value
value
return
ternary

Convert value to a ternary.

Type Value Value after conversion
String ‘1’, ‘t’, ‘true’ TRUE
String ‘0’, ‘f’, ‘false’ FALSE
String Other values UNKNOWN
Integer 1 TRUE
Integer 0 FALSE
Integer Other values UNKNOWN
Float 1 TRUE
Float 0 FALSE
Float Other values UNKNOWN
Datetime   UNKNOWN
Boolean true TRUE
  false FALSE
Null   UNKNOWN