SQL Server 2008正在使用指定格式的日期列创建表

SQL Server 2008正在使用指定格式的日期列创建表,sql,sql-server,create-table,Sql,Sql Server,Create Table,我必须创建一个包含3列的表(dtFrom、dtTo、service_time)。 dtFrom&dtTo是datetime,service_time是int。现在在datetime列中,我必须将日期保存为2018年4月22日。如何在创建表查询中设置格式 我在谷歌上搜索过,但没有找到任何帮助 下面是创建表查询: create table tbl_previous_policy ( dtFrom datetime NOT NULL, dtTo datetime NOT NULL, servic

我必须创建一个包含3列的表(dtFrom、dtTo、service_time)。 dtFrom&dtTo是datetime,service_time是int。现在在datetime列中,我必须将日期保存为2018年4月22日。如何在创建表查询中设置格式

我在谷歌上搜索过,但没有找到任何帮助

下面是创建表查询:

create table tbl_previous_policy
(
 dtFrom datetime NOT NULL,
 dtTo datetime NOT NULL,
 service_time int NOT NULL
)

现在,我应该如何设置上述查询中datetime列的格式?

@MitchWheat的评论绝对正确。日期/时间以内部格式存储

您可以做的一件事是向表中添加一个计算列,并将其用于正确的格式。您可以通过以下方式执行此操作:

create table tbl_previous_policy (
    dtFrom datetime NOT NULL,
    dtTo datetime NOT NULL,
    service_time int NOT NULL,
    dtFrom_ddmmmyyyy as ( replace(convert(varchar(11), dtFrom, 106), ' ', '-') ),
    dtTo_ddmmmyyyy as ( replace(convert(varchar(11), dtTo, 106), ' ', '-') )
);

现在,当您希望以首选格式输出日期时,可以使用其他字段。您还可以使用内置的日期/时间功能操作现有值。

您是说您已搜索,但找不到“create table”的语法吗?还是你把陈述和表现混为一谈?datetime列是二进制的;显示方式与存储方式无关。也就是说,不要试图将日期存储为格式化字符串!显示您当前的创建表尝试。Sir在
CREATE TABLE
中找到了CREATE TABLE`语法,但没有找到关于日期时间格式的语法。Sir使用
CREATE TABLE
查询更新了我的问题您缺少的一点是,您没有在日期时间存储上设置格式;格式是演讲的重点。你可以这样做,但我永远不会。