Data Type Conversion
Data type conversions can be achieved through either data type conversion functions or function cast($).
DolphinDB supports type conversion functions including string, bool, char, short, int, long, double, date, month, time, second, minute, datetime, timestamp, symbol, nanotime, nanotimestamp, datehour, uuid, ipaddr, int128, blob, complex, point, duration.
Each individual function has 3 usages:
-
Create a new variable with NULL value
-
Convert from a string
-
Convert from other data types
-
All these functions (except for
symbol
) accept zero or one parameter. If there is no input parameter, it creates a corresponding scalar object with a default value. If the parameter is a string or string vector, it will convert the string to the target data type accordingly. Other types are converted accordingly if they are semantically compatible. -
The short, int, and long functions use rounding to convert floating-point numbers to integers, and use truncation to convert strings by discarding the fractional part of that given value.
string
// make a new string with default value ""
string()=="";
// output
1
string(10);
// output
10
typestr string(108.5);
// output
STRING
string(now());
// output
2016.03.02T20:55:31.287
bool
x=bool();
x;
// output
00b
typestr x;
// output
BOOL
bool(`true);
// output
1
bool(`false);
// output
0
bool(100.2);
// output
1
bool(0);
// output
0
int
x=int();
x;
// output
00i
typestr x;
// output
INT
int(`10.9);
// output
10
int(2147483647);
// output
2147483647
// maximum value for an INT is 2^31-1=2147483647
int(2147483648);
// output
00i
short
x=short();
x;
// output
00h
typestr x;
// output
SHORT
short(`12.3);
// output
12
short(`120.9c);
// output
120
short(32767);
// output
32767
/ maximum value for a SHORT is 2^15-1=32767
short(32768);
// output
00h
long
x=long();
x;
// output
00l
typestr x;
// output
LONG
long(`10.9);
// output
10
long(9223372036854775807l);
// output
9223372036854775807
// maximum value for LONG is 2^63-1=9223372036854775807
long(9223372036854775808l);
// output
9223372036854775807
char
x=char();
x;
// output
00c
typestr x;
// output
CHAR
a=char(99);
a;
// output
'c'
typestr a;
// output
CHAR
char(a+5);
// output
'h'
double
x=double();
x;
// output
00F
typestr x;
// output
DOUBLE
typestr double(`10);
// output
DOUBLE
double(`10.9);
// output
10.9
double(now());
// output
5.297834e+011
date
date();
// output
00d
date(`2011.10.12);
// output
2011.10.12
date(now());
// output
2016.03.02
datetime
datetime(2009.11.10);
// output
2009.11.10T00:00:00
typestr datetime(2009.11.10);
// output
DATETIME
datetime(now());
// output
2016.03.02T20:51:10
timestamp
timestamp(2016.10.12);
// output
2016.10.12T00:00:00.000
timestamp(2016.10.12)+1;
// output
2016.10.12T00:00:00.001
timestamp(now());
// output
2016.10.13T20:28:45.104
month
month();
0M
month(`2012.12m);
012.12M
/make a month variable from date
month(2012.12.23);
012.12M
//make a month variable from timestamp
month(now());
016.03M
second
second();
// output
00s
second("19:36:12");
// output
19:36:12
second(now());
// output
20:50:31
minute
minute();
// output
00m
minute(now());
// output
20:49m
time
time();
// output
00t
time("12:32:56.356");
// output
12:32:56.356
time(now());
// output
20:49:12.564
symbol
x=`AMZN`AAPL`GOOG`FB`SNAP;
x;
// output
["AMZN","AAPL","GOOG","FB","SNAP"]
typestr x;
// output
STRING VECTOR
y=symbol(x);
y;
// output
["AMZN","AAPL","GOOG","FB","SNAP"]
typestr y;
// output
FAST SYMBOL VECTOR
cast(X, dataTypeName) / $
x=3.1;
typestr x;
// output
DOUBLE
x=cast(x, int);
// can also use cast(x, INT)
x;
// output
3
typestr x;
// output
INT
19.99$INT;
// output
20
syms =`IBM`C`MS`MSFT`JPM`ORCL`BIDU`SOHU
typestr syms;
// output
STRING VECTOR
syms=syms$SYMBOL;
typestr syms;
// output
FAST SYMBOL VECTOR
For more about the cast
function please see cast.