【问题标题】:How to use datetime type in SQL?如何在 SQL 中使用日期时间类型?
【发布时间】:2017-11-02 16:49:28
【问题描述】:

我正在尝试使用 SQL 创建一个表,其中我的列之一必须是“日期时间”类型,但是,我希望使用我的本地时间格式,即: DD:MM:YYYY HH:MM:SS

CREATE TABLE Topics
(
    TopicID int NOT NULL IDENTITY(1,1) PRIMARY KEY,
    TopicTitle Nvarchar(50) NOT NULL,
    TopicDate datetime NOT NULL,
    TopicText Nvarchar(255) NOT NULL,
    UserID int NOT NULL FOREIGN KEY REFERENCES Users(UserID)
)

如何使DATETIME 类型输入成为我上面指定的格式?

谢谢!

约翰

【问题讨论】:

  • 只是好奇......谁使用DD:MM:YYYY?我熟悉dmy,但不熟悉冒号作为分隔符。
  • Datetime is a datetime 是 datetime 数据类型。选择要显示的数据时格式化,而不是存储您的数据。
  • 我们在丹麦和大多数欧洲国家这样做,我认为 :-)
  • @JohnTheHun 整洁。我以为你用. 来分隔dmy 那里。
  • 好吧,我们可以做 DMY,但冒号只用于时间部分:例如2.11.2017 18:04:12

标签: sql sql-server datetime format


【解决方案1】:

我不知道可以正确解析使用冒号作为dd:mm:yyyy 之间分隔符的日期时间文字的语言设置,但您可以使用stuff() 将前两个冒号交换为句点,并使用format()( Sql Server 2012+) 用于输出:

/* adjusting input to a string that can convert to datetime */
declare @s varchar(20) = '02:11:2017 16:59:16';
select dt = convert(datetime,stuff(stuff(@s,3,1,'.'),6,1,'.'),103)

/* return datetime using specified format */
select dt = format(getdate(),'dd:MM:yyyy HH:mm:ss')

【讨论】:

    猜你喜欢
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 2019-06-10
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多