Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SPARK-31465][SQL][DOCS] Document Literal in SQL Reference #28237

Closed
wants to merge 12 commits into from
2 changes: 2 additions & 0 deletions docs/_data/menu-sql.yaml
Expand Up @@ -78,6 +78,8 @@
subitems:
- text: Data Types
url: sql-ref-datatypes.html
- text: Literals
url: sql-ref-literals.html
- text: Null Semantics
url: sql-ref-null-semantics.html
- text: NaN Semantics
Expand Down
155 changes: 155 additions & 0 deletions docs/sql-ref-literals.md
@@ -0,0 +1,155 @@
---
layout: global
title: Literals
displayTitle: Literals
license: |
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
---

A literal (aka constant) represents a fixed data value. Spark SQL supports the following literals:
huaxingao marked this conversation as resolved.
Show resolved Hide resolved

* String Literals
* Boolean Literals
* Numeric Literals
* Datetime Literals
* Interval Literals
huaxingao marked this conversation as resolved.
Show resolved Hide resolved

### String Literals

A string literal is used to specify a character string value.
huaxingao marked this conversation as resolved.
Show resolved Hide resolved
<dl>
<dt><code><em>Format:</em></code></dt>
<dd>
<code>'c [ ... ]'</code><br>
huaxingao marked this conversation as resolved.
Show resolved Hide resolved
c: one character of user's character set.
</dd>
</dl>
<dl>
<dt><code><em>Examples:</em></code></dt>
huaxingao marked this conversation as resolved.
Show resolved Hide resolved
<dd>
<code>'Hello, World!', 'Spark SQL', 'dbname.schema'</code>
</dd>
</dl>

### Boolean Literals

A boolean literal is used to specify a boolean value.
<dl>
<dt><code><em>Format:</em></code></dt>
<dd>
<code>TRUE | FALSE </code>
</dd>
</dl>

### Numeric Literals

A numeric literal is used to specify a fixed or floating-point number.

#### Integer Literals

<dl>
<dt><code><em>Format:</em></code></dt>
<dd>
<code>[ + | - ] digit [ ... ] [ l | L ]</code><br>
digit: one of 0, 1, 2, 3, 4, 5, 6, 7, 8 or 9 <br>
l or L: indicates <code>LongType</code>.
huaxingao marked this conversation as resolved.
Show resolved Hide resolved
</dd>
</dl>
<dl>
<dt><code><em>Examples:</em></code></dt>
<dd>
<code>6, +188, -54, 1000L</code>
</dd>
</dl>

#### Floating Point and Decimal Literals

<dl>
<dt><code><em>Format:</em></code></dt>
<dd>
<code>
[ + | - ] { digit [ ... ] [ . ] [ digit [ ... ] ] | . digit [ ... ] } <br>
[ { e | E } [ + | - ] digit [ ... ] ] [ d | D ]
</code><br>
digit: one of 0, 1, 2, 3, 4, 5, 6, 7, 8 or 9. <br>
e or E: indicates that the number is in scientific notation format. <br>
huaxingao marked this conversation as resolved.
Show resolved Hide resolved
d or D: indicates <code>DoubleType</code>
huaxingao marked this conversation as resolved.
Show resolved Hide resolved
</dd>
</dl>
<dl>
<dt><code><em>Examples:</em></code></dt>
<dd>
<code>5E2, 3.e6, 2.3E-2, +3.e+3, -4D, 0.25</code>
</dd>
</dl>
huaxingao marked this conversation as resolved.
Show resolved Hide resolved

### Datetime Literals

A Datetime literal is used to specify a datetime data type value.
huaxingao marked this conversation as resolved.
Show resolved Hide resolved

#### Date Literals

<dl>
<dt><code><em>Format:</em></code></dt>
<dd>
<code>
DATE 'YYYY-MM-DD'
</code>
</dd>
</dl>
<dl>
<dt><code><em>Examples:</em></code></dt>
<dd>
<code>DATE '2011-11-11'</code>
</dd>
</dl>

#### Timestamp Literals

<dl>
<dt><code><em>Format:</em></code></dt>
<dd>
<code>
TIMESTAMP yyyy-MM-dd HH:mm[:ss.SSSSSSzzz]
huaxingao marked this conversation as resolved.
Show resolved Hide resolved
</code>
</dd>
</dl>
<dl>
<dt><code><em>Examples:</em></code></dt>
<dd>
<code>TIMESTAMP '1997-01-31 09:26:56.123'</code><br>
<code>TIMESTAMP '1997-01-31 09:26:56.66666666CST'</code>
</dd>
cloud-fan marked this conversation as resolved.
Show resolved Hide resolved
</dl>

### Interval Literals

An inerval literal is used to specify a fixed period of time.
<dl>
<dt><code><em>Format:</em></code></dt>
<dd>
<code>
INTERVAL value { YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | MILLISECOND | MICROSECOND }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be {value unit}+

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and we also support INTERVAL str unit TO unit.

</code>
</dd>
</dl>
<dl>
<dt><code><em>Examples:</em></code></dt>
<dd>
<code>INTERVAL 3 YEAR</code><br>
<code>INTERVAL 3 YEAR 3 HOUR</code>
</dd>
</dl>