📌  相关文章
📜  将日期时间转换为字符串的 SQL 查询

📅  最后修改于: 2022-05-13 01:54:33.965000             🧑  作者: Mango

将日期时间转换为字符串的 SQL 查询

为了将 DateTime 转换为字符串,我们可以使用 CONVERT() 和 CAST()函数。这些函数用于将(任何数据类型的)值转换为指定的数据类型。

CONVERT()函数

句法:

CONVERT(VARCHAR, datetime [,style])
  • VARCHAR - 它表示字符串类型。
  • datetime – 它可以是计算要转换为字符串的日期或日期时间值的表达式。
  • style – 它指定日期的格式。它的值由 SQL Server 预定义。样式参数是可选的。

CAST()函数

句法:

CAST(EXPRESSION AS DATATYPE(length))
  • EXPRESSION - 它表示需要转换的值。
  • DATATYPE – 这是我们要将表达式转换为的数据类型。
  • length - 它表示结果数据类型的长度(可选)。

Without 

Century (YY)

With

 Century(YYYY)

Standard

Format

0 or 100

Default for datetime 

and smalldatetime

mon dd yyyy 

hh:miAM (or PM)

1

101

U.S.

1 = mm/dd/yy

101 = mm/dd/yyyy

2

102

ANSI

2 = yy.mm.dd

102 = yyyy.mm.dd

3

103

British/French

3 = dd/mm/yy

103 = dd/mm/yyyy

4

104

German

4 = dd.mm.yy

104 = dd.mm.yyyy

5

105

Italian

5 = dd-mm-yy

105 = dd-mm-yyyy

6

106

6 = dd mon yy

106 = dd mon yyyy

7

107

7 = Mon dd, yy

107 = Mon dd, yyyy

8

108

hh:mm:ss

在下面的示例中,我们将 DateTime 转换为不同格式的字符串。

第一步:创建数据库

询问:

CREATE DATABASE Product_order;

图:创建数据库

第 2 步:创建表

现在,我们需要在数据库中创建一个表。为此,我们将使用 CREATE 语句。

询问:

CREATE TABLE orders (prod_id INT,
                     prod_name VARCHAR(255),
                     order_date DATE,
                     PRIMARY KEY(prod_id));

图:创建表orders

步骤 3:将数据插入表中

在这一步中,我们将在订单表中插入数据。对于插入数据,我们将使用 INSERT 语句。

询问:

INSERT INTO orders VALUES (101, 'iPhone', '2020-07-20'),
                          (102, 'iPad', '2018-01-01'),
                          (103, 'iWatch', '2019-03-15'),
                          (104, 'iMac', '2016-05-13');

图:向订单表中插入数据

第 4 步:为了验证表的内容,我们将使用 SELECT 语句。

SELECT * FROM orders;

图:选择语句查询

输出:

图:订单表

第 5 步:使用 CONVERT()函数

询问 :

/*Declaring DATETIME as dt*/
DECLARE @dt DATETIME = (SELECT order_date 
FROM orders WHERE prod_id = 101);
/*SELECT statement is used to print the s1 message*/
SELECT 
    CONVERT(VARCHAR(20),@dt,0) s1;

图:CONVERT()函数查询

输出:

图:输出

询问 :

在此,我们将样式参数更改为 1。同样,您可以使用上表中的不同样式参数值。

/*Declaring DATETIME as dt*/
DECLARE @dt DATETIME = (SELECT order_date 
FROM orders WHERE prod_id = 103);
/*SELECT statement is used to print the s1 message*/
SELECT 
CONVERT(VARCHAR(20),@dt,1) s1;

图:CONVERT()函数查询

输出 :

图:输出

第 6 步:使用 CAST()函数

询问:

/*Declaring DATETIME as dt*/
DECLARE @dt DATETIME = (SELECT order_date 
FROM orders WHERE prod_id = 102);
/*SELECT statement is used to print the s1 message*/
SELECT 
    CAST(@dt AS DATETIME) s1;

图:CAST()函数查询

输出:

图:输出