📜  如何在创建表时指定日期格式并在 SQL 中填写?

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

如何在创建表时指定日期格式并在 SQL 中填写?

每当我们使用数据库时,我们发现几乎每个表都包含一个 Date 列。毕竟,数据的日期在分析数据时起着重要作用。以特定或可理解的格式存储日期非常重要。在本文中,我们将学习如何在 SQL Server 上指定日期格式。

让我们创建我们的演示数据库和表。

第一步:创建数据库

使用以下命令创建数据库。

询问:

CREATE DATABASE User_details; 

第二步:使用数据库

询问:

USE User_details; 

第三步:表定义

我们在数据库中有以下 GFG_user 表。

询问:

CREATE TABLE GFG_user(Id INT NOT NULL,Dt DATE, 
Address  VARCHAR(100),Dt_FORMATTED AS 
(convert(varchar(255), dt, 104)),   
PRIMARY KEY (Id) );

输出:

在这里,我们创建了一个名为 Dt_FORMATTED 的列,我们将在其中保存格式化的日期。

现在,我们看到了CONVERT()函数。 CONVERT()函数只是将任何类型的值转换为指定的数据类型。

句法:

CONVERT ( data_type ( length ) ,
expression , style )    

通过使用此函数,我们将字符串转换为日期。在样式参数的位置,我们提到了'104' 。它是指定日期格式的数字代码。

检查此表以查看用于不同格式的不同代码:

With century

 (yy) 

With century 

(yyyy)

Standard

Input/Output 

0 or 100 (1,2)

Default dor datetime 

and smalldatetime

mon dd yyy hh:

 miAM (or PM)

1101U.S.

1 = mm/dd/yy

101 = mm/dd/yyyy

2102ANSI

2 = yy.mm.dd

102 = yyyy.mm.dd

3103British/French

3 = dd/mm/yy

103 = dd/mm/yyyy

4104German

4 = dd.mm.yy

104 = dd.mm.yyyy

11111JAPAN

11 = yy/mm/dd

111 = yyyy/mm/dd

12112ISO

12 = yymmdd

112 = yyyymmdd

13 or 113 (1,2)Europe default + millisecondsdd mon yyyy hh:mi:ss:mmm (24h)
131 (2)Hijri (5)dd/mm/yyyy hh:mi:ss:mmmAM

在这里,我们只提到了 10 种最常用的格式。

第 4 步:插入值

以下命令用于将值插入表中。

询问:

SET DATEFORMAT dmy; INSERT INTO GFG_user
(Id, Dt, Address) VALUES ('1','23.11.2021',
'German');   

在这个查询中,我们使用 日期格式设置。

句法:

SET DATEFORMAT format    

当我们插入字符串时,服务器将尝试将字符串转换为日期,然后再将其插入表中。因为它无法判断我们是将月份放在日期之前还是将日期放在月份之前。例如,假设您尝试插入 06.07.2000。服务器无法检测日期是 7 月 6 日还是 6 月 7 日。尽管它使用正在运行的用户帐户的本地化设置来确定不提及 DATEFORMAT 可能会给您一个错误,因为大多数时候运行该操作的帐户设置为美国格式,即 -月日年(mdy)

错误是因为我们想将其保存为dmy ,而不是mdy 。但是,使用 DATEFORMAT 将帮助您摆脱它。

输出:

我们已经完成了我们的表格,现在让我们检查一下我们是否得到了我们想要的输出。

第五步:查看表的数据

询问:

SELECT * FROM GFG_user; 

输出:

我们已经成功地在 Dt_FORMATTED 列中获得了我们的德语格式日期。