doc-exports/docs/dli/sqlreference/dli_08_0112.html
Su, Xiaomeng 76a5b1ee83 dli_sqlreference_20240227
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com>
Co-authored-by: Su, Xiaomeng <suxiaomeng1@huawei.com>
Co-committed-by: Su, Xiaomeng <suxiaomeng1@huawei.com>
2024-03-27 22:02:33 +00:00

203 lines
18 KiB
HTML

<a name="dli_08_0112"></a><a name="dli_08_0112"></a>
<h1 class="topictitle1">Type Conversion Functions</h1>
<div id="body1574406512519"><div class="section" id="dli_08_0112__section9734433122713"><h4 class="sectiontitle">Syntax</h4><pre class="screen" id="dli_08_0112__screen19396104742710">CAST(value AS type)</pre>
</div>
<div class="section" id="dli_08_0112__section197791153142712"><h4 class="sectiontitle">Syntax Description</h4><p id="dli_08_0112__p125922369169">This function is used to forcibly convert types.</p>
</div>
<div class="section" id="dli_08_0112__section162182672816"><h4 class="sectiontitle">Precautions</h4><ul id="dli_08_0112__ul9129922125211"><li id="dli_08_0112__li91296223521">If the input is <strong id="dli_08_0112__b11255142516">NULL</strong>, <strong id="dli_08_0112__b61251514750">NULL</strong> is returned.</li><li id="dli_08_0112__li17129132245218">Flink jobs do not support the conversion of <strong id="dli_08_0112__b34510111973">bigint</strong> to <strong id="dli_08_0112__b1150171114717">timestamp</strong> using CAST. You can convert it using <strong id="dli_08_0112__b1951011976">to_timestamp</strong> or <strong id="dli_08_0112__b1511311775">to_localtimestamp</strong>.</li></ul>
</div>
<div class="section" id="dli_08_0112__section6708122502812"><h4 class="sectiontitle">Example</h4><p id="dli_08_0112__a3e8ecbf3e3934ed1b04601e1689e0518">Convert amount into a string. The specified length of the string is invalid after the conversion.</p>
<pre class="screen" id="dli_08_0112__s41c7e3601df241b281c5c3557d53415c">insert into temp select cast(amount as VARCHAR(10)) from source_stream;</pre>
</div>
<div class="section" id="dli_08_0112__section7391848483"><h4 class="sectiontitle">Common Type Conversion Functions</h4>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="dli_08_0112__table178184319481" frame="border" border="1" rules="all"><caption><b>Table 1 </b>Common type conversion functions</caption><thead align="left"><tr id="dli_08_0112__row681919314480"><th align="left" class="cellrowborder" valign="top" width="38.71%" id="mcps1.3.5.2.2.3.1.1"><p id="dli_08_0112__p14247103920913">Function</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="61.29%" id="mcps1.3.5.2.2.3.1.2"><p id="dli_08_0112__p881943112487">Description</p>
</th>
</tr>
</thead>
<tbody><tr id="dli_08_0112__row38191317486"><td class="cellrowborder" valign="top" width="38.71%" headers="mcps1.3.5.2.2.3.1.1 "><p id="dli_08_0112__p781913194814"><a href="#dli_08_0112__li164511853108">cast(v1 as varchar)</a></p>
</td>
<td class="cellrowborder" valign="top" width="61.29%" headers="mcps1.3.5.2.2.3.1.2 "><p id="dli_08_0112__p13819531184820">Converts <strong id="dli_08_0112__b19554840113818">v1</strong> to a string. The value of <strong id="dli_08_0112__b1494184420383">v1</strong> can be of the numeric type or of the timestamp, date, or time type.</p>
</td>
</tr>
<tr id="dli_08_0112__row1917212119502"><td class="cellrowborder" valign="top" width="38.71%" headers="mcps1.3.5.2.2.3.1.1 "><p id="dli_08_0112__p12173151185019"><a href="#dli_08_0112__li191092001410">cast (v1 as int)</a></p>
</td>
<td class="cellrowborder" valign="top" width="61.29%" headers="mcps1.3.5.2.2.3.1.2 "><p id="dli_08_0112__p4174171105011">Converts <strong id="dli_08_0112__b117021951203812">v1</strong> to the <strong id="dli_08_0112__b11494165953810">int</strong> type. The value of <strong id="dli_08_0112__b158213538380">v1</strong> can be a number or a character.</p>
</td>
</tr>
<tr id="dli_08_0112__row12267712165017"><td class="cellrowborder" valign="top" width="38.71%" headers="mcps1.3.5.2.2.3.1.1 "><p id="dli_08_0112__p026851219507"><a href="#dli_08_0112__li14645122173716">cast(v1 as timestamp)</a></p>
</td>
<td class="cellrowborder" valign="top" width="61.29%" headers="mcps1.3.5.2.2.3.1.2 "><p id="dli_08_0112__p14268512155012">Converts <strong id="dli_08_0112__b6422131418399">v1</strong> to the <strong id="dli_08_0112__b777312174399">timestamp</strong> type. The value of <strong id="dli_08_0112__b214120173916">v1</strong> can be of the <strong id="dli_08_0112__b129774238399">string</strong>, <strong id="dli_08_0112__b178652915391">date</strong>, or <strong id="dli_08_0112__b860113312391">time</strong> type.</p>
</td>
</tr>
<tr id="dli_08_0112__row77856825316"><td class="cellrowborder" valign="top" width="38.71%" headers="mcps1.3.5.2.2.3.1.1 "><p id="dli_08_0112__p157872805310"><a href="#dli_08_0112__li18269229477">cast(v1 as date)</a></p>
</td>
<td class="cellrowborder" valign="top" width="61.29%" headers="mcps1.3.5.2.2.3.1.2 "><p id="dli_08_0112__p37879815318">Converts <strong id="dli_08_0112__b919712478392">v1</strong> to the <strong id="dli_08_0112__b1458512501395">date</strong> type. The value of <strong id="dli_08_0112__b8445175423913">v1</strong> can be of the <strong id="dli_08_0112__b9152125883911">string</strong> or <strong id="dli_08_0112__b107505004012">timestamp</strong> type.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<ul id="dli_08_0112__ul1945113551013"><li id="dli_08_0112__li164511853108"><a name="dli_08_0112__li164511853108"></a><a name="li164511853108"></a>cast(v1 as varchar)<ul id="dli_08_0112__ul72931712101020"><li id="dli_08_0112__li11559580101">Test statement<pre class="screen" id="dli_08_0112__screen12431554101019">SELECT cast(content as varchar) FROM T1;</pre>
</li><li id="dli_08_0112__li16968746151012">Test data and result
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="dli_08_0112__table1466516651117" frame="border" border="1" rules="all"><caption><b>Table 2 </b>T1</caption><thead align="left"><tr id="dli_08_0112__row3665366110"><th align="left" class="cellrowborder" valign="top" width="50%" id="mcps1.3.6.1.1.2.1.2.3.1.1"><p id="dli_08_0112__p5665262113">content (INT)</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="50%" id="mcps1.3.6.1.1.2.1.2.3.1.2"><p id="dli_08_0112__p186659671115">varchar</p>
</th>
</tr>
</thead>
<tbody><tr id="dli_08_0112__row1966515613112"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.6.1.1.2.1.2.3.1.1 "><p id="dli_08_0112__p06658611115">5</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.6.1.1.2.1.2.3.1.2 "><p id="dli_08_0112__p6665165119">"5"</p>
</td>
</tr>
</tbody>
</table>
</div>
</li></ul>
</li><li id="dli_08_0112__li191092001410"><a name="dli_08_0112__li191092001410"></a><a name="li191092001410"></a>cast (v1 as int)<ul id="dli_08_0112__ul563143111515"><li id="dli_08_0112__li35593517155">Test statement<pre class="screen" id="dli_08_0112__screen65594518156">SELECT cast(content as int) FROM T1;</pre>
</li><li id="dli_08_0112__li1556025181515">Test data and result
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="dli_08_0112__table556075121516" frame="border" border="1" rules="all"><caption><b>Table 3 </b>T1</caption><thead align="left"><tr id="dli_08_0112__row656010521519"><th align="left" class="cellrowborder" valign="top" width="50%" id="mcps1.3.6.2.1.2.1.2.3.1.1"><p id="dli_08_0112__p15601958156">content (STRING)</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="50%" id="mcps1.3.6.2.1.2.1.2.3.1.2"><p id="dli_08_0112__p756055191514">int</p>
</th>
</tr>
</thead>
<tbody><tr id="dli_08_0112__row125603541513"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.6.2.1.2.1.2.3.1.1 "><p id="dli_08_0112__p1256018581519">"5"</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.6.2.1.2.1.2.3.1.2 "><p id="dli_08_0112__p65617551515">5</p>
</td>
</tr>
</tbody>
</table>
</div>
</li></ul>
</li><li id="dli_08_0112__li14645122173716"><a name="dli_08_0112__li14645122173716"></a><a name="li14645122173716"></a>cast(v1 as timestamp)<ul id="dli_08_0112__ul1288014363611"><li id="dli_08_0112__li288024315366">Test statement<pre class="screen" id="dli_08_0112__screen5880164315368">SELECT cast(content as timestamp) FROM T1;</pre>
</li><li id="dli_08_0112__li2880174343617">Test data and result
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="dli_08_0112__table198802434367" frame="border" border="1" rules="all"><caption><b>Table 4 </b>T1</caption><thead align="left"><tr id="dli_08_0112__row388124318365"><th align="left" class="cellrowborder" valign="top" width="50%" id="mcps1.3.6.3.1.2.1.2.3.1.1"><p id="dli_08_0112__p128815438366">content (STRING)</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="50%" id="mcps1.3.6.3.1.2.1.2.3.1.2"><p id="dli_08_0112__p088117433365">timestamp</p>
</th>
</tr>
</thead>
<tbody><tr id="dli_08_0112__row98812043153619"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.6.3.1.2.1.2.3.1.1 "><p id="dli_08_0112__p1288124316367">"2018-01-01 00:00:01"</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.6.3.1.2.1.2.3.1.2 "><p id="dli_08_0112__p19881184313612">1514736001000</p>
</td>
</tr>
</tbody>
</table>
</div>
</li></ul>
</li><li id="dli_08_0112__li18269229477"><a name="dli_08_0112__li18269229477"></a><a name="li18269229477"></a>cast(v1 as date)<ul id="dli_08_0112__ul2727182715444"><li id="dli_08_0112__li1472716271444">Test statement<pre class="screen" id="dli_08_0112__screen13727122712444">SELECT cast(content as date) FROM T1;</pre>
</li><li id="dli_08_0112__li13728132744414">Test data and result
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="dli_08_0112__table37286275448" frame="border" border="1" rules="all"><caption><b>Table 5 </b>T1</caption><thead align="left"><tr id="dli_08_0112__row18728162714419"><th align="left" class="cellrowborder" valign="top" width="50%" id="mcps1.3.6.4.1.2.1.2.3.1.1"><p id="dli_08_0112__p1372852716449">content (TIMESTAMP)</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="50%" id="mcps1.3.6.4.1.2.1.2.3.1.2"><p id="dli_08_0112__p1072892714419">date</p>
</th>
</tr>
</thead>
<tbody><tr id="dli_08_0112__row15728827144414"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.6.4.1.2.1.2.3.1.1 "><p id="dli_08_0112__p14728162794410">1514736001000</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.6.4.1.2.1.2.3.1.2 "><p id="dli_08_0112__p177288271448">"2018-01-01"</p>
</td>
</tr>
</tbody>
</table>
</div>
</li></ul>
</li></ul>
<div class="section" id="dli_08_0112__section14655163113329"><h4 class="sectiontitle">Detailed Sample Code</h4><div class="codecoloring" codetype="Sql" id="dli_08_0112__screen1970373145019"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
<span class="normal">29</span>
<span class="normal">30</span>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span>
<span class="normal">34</span>
<span class="normal">35</span>
<span class="normal">36</span>
<span class="normal">37</span>
<span class="normal">38</span>
<span class="normal">39</span></pre></div></td><td class="code"><div><pre><span></span><span class="cm">/** source **/</span>
<span class="k">CREATE</span>
<span class="k">SOURCE</span><span class="w"> </span><span class="n">STREAM</span><span class="w"> </span><span class="n">car_infos</span><span class="w"> </span><span class="p">(</span><span class="n">cast_int_to_varchar</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="w"> </span><span class="n">cast_String_to_int</span><span class="w"> </span><span class="n">string</span><span class="p">,</span>
<span class="n">case_string_to_timestamp</span><span class="w"> </span><span class="n">string</span><span class="p">,</span><span class="w"> </span><span class="n">case_timestamp_to_date</span><span class="w"> </span><span class="k">timestamp</span><span class="p">)</span><span class="w"> </span><span class="k">WITH</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ss">&quot;dis&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="n">region</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ss">&quot;xxxxx&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="n">channel</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ss">&quot;dis-input&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="n">partition_count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ss">&quot;1&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="n">encode</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ss">&quot;json&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="k">offset</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ss">&quot;13&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="n">json_config</span><span class="w"> </span><span class="o">=</span>
<span class="ss">&quot;cast_int_to_varchar=cast_int_to_varchar;cast_String_to_int=cast_String_to_int;case_string_to_timestamp=case_string_to_timestamp;case_timestamp_to_date=case_timestamp_to_date&quot;</span>
<span class="w"> </span>
<span class="p">);</span>
<span class="cm">/** sink **/</span>
<span class="k">CREATE</span>
<span class="n">SINK</span><span class="w"> </span><span class="n">STREAM</span><span class="w"> </span><span class="n">cars_infos_out</span><span class="w"> </span><span class="p">(</span><span class="n">cast_int_to_varchar</span><span class="w"> </span><span class="nb">varchar</span><span class="p">,</span><span class="w"> </span><span class="n">cast_String_to_int</span>
<span class="nb">int</span><span class="p">,</span><span class="w"> </span><span class="n">case_string_to_timestamp</span><span class="w"> </span><span class="k">timestamp</span><span class="p">,</span><span class="w"> </span><span class="n">case_timestamp_to_date</span><span class="w"> </span><span class="nb">date</span><span class="p">)</span><span class="w"> </span><span class="k">WITH</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ss">&quot;dis&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="n">region</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ss">&quot;xxxxx&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="n">channel</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ss">&quot;dis-output&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="n">partition_count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ss">&quot;1&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="n">encode</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ss">&quot;json&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="k">offset</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ss">&quot;4&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="n">json_config</span><span class="w"> </span><span class="o">=</span>
<span class="ss">&quot;cast_int_to_varchar=cast_int_to_varchar;cast_String_to_int=cast_String_to_int;case_string_to_timestamp=case_string_to_timestamp;case_timestamp_to_date=case_timestamp_to_date&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="n">enable_output_null</span><span class="o">=</span><span class="ss">&quot;true&quot;</span>
<span class="p">);</span>
<span class="cm">/** Statistics on static car information**/</span>
<span class="k">INSERT</span>
<span class="k">INTO</span>
<span class="w"> </span><span class="n">cars_infos_out</span>
<span class="k">SELECT</span>
<span class="w"> </span><span class="k">cast</span><span class="p">(</span><span class="n">cast_int_to_varchar</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nb">varchar</span><span class="p">),</span>
<span class="w"> </span><span class="k">cast</span><span class="p">(</span><span class="n">cast_String_to_int</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nb">int</span><span class="p">),</span>
<span class="w"> </span><span class="k">cast</span><span class="p">(</span><span class="n">case_string_to_timestamp</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="k">timestamp</span><span class="p">),</span>
<span class="w"> </span><span class="k">cast</span><span class="p">(</span><span class="n">case_timestamp_to_date</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nb">date</span><span class="p">)</span>
<span class="k">FROM</span>
<span class="w"> </span><span class="n">car_infos</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="dli_08_0112__p18941142615111">Returned data</p>
<pre class="screen" id="dli_08_0112__screen1754019195213">{"case_string_to_timestamp":1514736001000,"cast_int_to_varchar":"5","case_timestamp_to_date":"2018-01-01","cast_String_to_int":100}</pre>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dli_08_0086.html">Built-In Functions</a></div>
</div>
</div>