我想以'dd.mm.yyyy'格式保存日期。所以我读到SQL中的日期有不同的格式(通过我使用Visual Studio和SQL Server的方式)。
I tried this code:
CREATE TABLE APP(
ID INT NOT NULL,
DT DATE FORMAT 'dd.mm.yyyy',
ADDRESS NVARCHAR (100) ,
PRIMARY KEY (ID)
);
但它返回错误:
'FORMAT'附近的语法不正确。
之后我想使用这段代码:
INSERT INTO APP (ID, DT)
VALUES ('1','22.12.2016')
答案 0 :(得分:5)
日期以内部格式存储。格式只对输入和输出有意义。
在您的情况下,您希望日期格式为德语(104),因此您可以使用:
CREATE TABLE APP (
ID INT NOT NULL,
DT DATE,
ADDRESS NVARCHAR(100),
DT_FORMATTED AS (convert(varchar(255), dt, 104)),
PRIMARY KEY (ID)
);
如果您愿意,可以将格式化日期作为单独的列包含在内:
dt_formatted
然后,您可以参考<form action="charge.php" method="POST">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_ZCRfEl8XeRIbPHGIifY3THYC"
data-amount="999"
data-name="Demo Site"
data-description="Widget"
data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
data-locale="auto">
</script>
以获得所需格式的字符串。
答案 1 :(得分:2)
您不需要在表定义中指定格式,因为日期以二进制格式存储。
CREATE TABLE APP(
ID INT NOT NULL,
DT DATE,
ADDRESS NVARCHAR (100) ,
PRIMARY KEY (ID)
);
但是,当您尝试插入该表时,服务器将尝试在插入之前将字符串转换为日期。这可能会有问题,因为它无法判断12.11.2017是11月12日还是12月11日。为了解决这个问题,它使用了正在执行操作的用户帐户的本地化设置。
通常,您会发现运行该操作的帐户设置为美国格式,月份日和年份(MDY),此时您想要的是日月年(DMY)格式。告诉它日期部分序列的一种方法是使用DATEFORMAT设置,如下所示:
SET DATEFORMAT dmy;
INSERT INTO APP (ID, DT)
VALUES (1,'22.12.2016')
另一种方法是使用CONVERT函数将字符串转换为日期,并告诉它日期格式是什么。德语格式的格式为numeric codes,如104:像这样:
INSERT INTO APP (ID, DT)
VALUES (2,CONVERT(date,'22.12.2016',104))
答案 2 :(得分:1)
使用此
CREATE TABLE APP(
ID INT NOT NULL,
DT DATE ,
ADDRESS NVARCHAR (100) ,
PRIMARY KEY (ID)
);
答案 3 :(得分:1)
其默认设置为yyyy-MM-dd
不,不是。根本没有与该字段关联的格式信息。
该值未由数据库格式化,仅作为时间点返回。将该值格式化为文本表示是由从数据库获取数据的应用程序完成的。
因此,您无法在数据库中更改日期值的格式,您必须更改显示数据的位置。
答案 4 :(得分:0)
日期以内部格式存储。 格式仅对输入和输出有意义。
您可以将格式日期包括在单独的列中:
103 | British/French | 103 = dd/mm/yyyy
CREATE TABLE [dbo].[Post]
(
[Id] INT IDENTITY (1, 1) NOT NULL,
[Name] VARCHAR(MAX) NULL,
[RowNo] INT NULL,
[ColNo] INT NULL,
[Deadline] (CONVERT(VARCHAR(255), dt, 103)), -- Include the formatted date as a separate column
CONSTRAINT [PK_KtoCo]
PRIMARY KEY CLUSTERED ([Id] ASC)
);
答案 5 :(得分:0)
使用它。
创建表:
CREATE TABLE EMP
(EID NUMBER(20),
ENAME VARCHAR2(20),
DT DATE,
SAL NUMBER(20));
插入表格:
INSERT INTO EMP (EID,ENAME,DT,SAL) VALUES(01,'ABCDE','11.NOV.2011',10000);
上表的O / P:
SELECT * FROM EMP;
EID ENAME DT SAL
01 ABCDE 11-DEC-11 10000