SQL表日期时间列格式

时间:2017-08-25 22:16:04

标签: sql sql-server database

我试着谷歌搜索得到答案,但徒劳无功。以下是我的要求

  1. 用户可以选择将数据插入到export_date为datetime
  2. 的表中
  3. 当他们执行插入语句时,我想确保他们在" dd-MM-yyyy hh:mm:ss"中键入了日期。格式。如果没有,请不要允许插入查询运行。
  4. 或允许用户以dd-MM-yyyy或dd / MM / yyyy等任何格式输入日期,但在内部将其转换为所需格式" dd-MM-yyyy hh:mm:ss"并存储
  5. 有人可以帮助/指导我吗?

2 个答案:

答案 0 :(得分:3)

您可以使用设置日期格式

示例

使用数据类型date进行说明,但显然您可以使用datetime

Set DateFormat DMY
Select try_convert(date,'15/08/2017')   -- Returns 2017-08-15

Set DateFormat MDY
Select try_convert(date,'15/08/2017')   -- Returns NULL

Set DateFormat YMD
Select try_convert(date,'15/08/2017')   -- Returns NULL

答案 1 :(得分:1)

如果您希望用户在" dd-MM-YYYY"中输入日期,则可能会遇到问题。格式,因为如果用户输入mm-dd-yyyy格式,您将获得不同的结果。 " YYYMMDD"是SQL Server将始终正确解释的通用格式。

从用户那里获得日期后,您可以使用所需的特定格式进行转换。以下内容将日期转换为ISO8601格式:

SELECT   
    GETDATE() AS UnconvertedDateTime,   
    CONVERT(nvarchar(30), GETDATE(), 126) AS UsingConvertTo_ISO8601  ;  
GO

有关具体日期格式的详细信息,我建议您查看Microsoft's Convert Functions