【问题标题】:SQL Server 2008 Creating Table with date column with specified formatSQL Server 2008 创建具有指定格式的日期列的表
【发布时间】:2018-04-16 09:23:17
【问题描述】:

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

我用谷歌搜索了它,但没有找到任何帮助。

下面是 CREATE TABLE 查询:

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

现在我应该如何设置上述查询中日期时间列的格式?

【问题讨论】:

  • 你真的是说你搜索过但找不到'create table'的语法吗?还是您将演示与表示混为一谈?日期时间列是二进制的;你如何显示它与你如何存储它无关。 I.E 不要尝试将日期存储为格式化字符串!
  • 向我们展示您当前的 CREATE TABLE 尝试。
  • 先生找到了 CREATE TABLE` 语法,但在 CREATE TABLE 中没有找到有关日期时间格式的信息。
  • 先生用create table查询更新了我的问题
  • 您缺少的一点是,您没有在日期时间存储上设置格式;格式是呈现的问题。

标签: sql sql-server create-table


【解决方案1】:

@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), ' ', '-') )
);

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

【讨论】:

  • 你可以这样做,但我永远不会。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-02
  • 1970-01-01
相关资源
最近更新 更多