SQL SERVER DATETIME格式

时间:2013-02-08 09:36:27

标签: sql sql-server datetime

学习SQL Server有一些我不确定的事情:

datetime字段,其值为: 2012-02-26 09:34:00.000

如果我使用以下方式选择表:

CAST(dob2 AS VARCHAR(12) ) AS d1

将其格式化为: Feb 26 2012

我不确定他的SQL Server如何或为何格式化DateTime。如果你使用datetime2它没有 - 任何人都知道为什么?

7 个答案:

答案 0 :(得分:7)

试试这个:

select convert(varchar, dob2, 101)
select convert(varchar, dob2, 102)
select convert(varchar, dob2, 103)
select convert(varchar, dob2, 104)
select convert(varchar, dob2, 105)
select convert(varchar, dob2, 106)
select convert(varchar, dob2, 107)
select convert(varchar, dob2, 108)
select convert(varchar, dob2, 109)
select convert(varchar, dob2, 110)
select convert(varchar, dob2, 111)
select convert(varchar, dob2, 112)
select convert(varchar, dob2, 113)

参考:http://msdn.microsoft.com/en-us/library/ms187928.aspx

http://www.w3schools.com/sql/func_convert.asp

答案 1 :(得分:7)

默认日期格式取决于数据库服务器的语言设置。您还可以change it per session,例如:

set language french
select cast(getdate() as varchar(50))
-->
févr 8 2013 9:45AM

答案 2 :(得分:5)

Compatibility Supports说 在兼容级别110下,CAST and CONVERT time 数据类型的 datetime2 操作的默认样式始终为121.如果您的查询依赖于旧行为,使用小于110的兼容级别,或在受影响的查询中显式指定0样式。

这意味着默认情况下 datetime2 CAST as varchar 121 format。对于前col1 col2格式(下方)相同(不包括最后的0)

SELECT CONVERT(varchar, GETDATE(), 121) col1,
       CAST(convert(datetime2,GETDATE()) as varchar) col2,
       CAST(GETDATE() as varchar) col3

SQL FIDDLE DEMO

--Results
COL1                    | COL2                          | COL3
2013-02-08 09:53:56.223 | 2013-02-08 09:53:56.2230000   | Feb 8 2013 9:53AM

仅供参考,如果您使用CONVERT代替CAST,则可以使用第三个参数指定MSDN

上列出的某些格式

答案 3 :(得分:1)

在MS SQL Server中,您可以执行以下操作:

SET DATEFORMAT ymd

答案 4 :(得分:0)

case when isdate(inputdate) = 1 
then convert(datetime, cast(inputdate,datetime2), 103)
else
case when isdate(inputdate) = 0 
then convert(datetime, cast(inputdate,datetime2), 103)

答案 5 :(得分:0)

这是我最喜欢的112和114 select(convert(varchar,getdate(),112)+ replace(convert(varchar,getdate(),114),':',''))'Getdate()112 + 114或YYYYMMDDHHMMSSMSS'

结果: Getdate()112 + 114或YYYYMMDDHHMMSSMSS

20171016083349100

答案 6 :(得分:0)

要使用 sql 语法更改日期格式,您应该使用此查询

SELECT DATE_FORMAT(`<columnName>`, '%d/%m/%Y') FROM schemaname.tablename;

例如:-

假设我有一个名为 bugloo 的架构,表名是 tbl_company 在这个 tbl_company 中,我有一列都是日期格式 %yy/%mm/%dd,列名是 createdDate,查询应该是这样的

SELECT DATE_FORMAT(`createdDate`, '%d/%m/%Y') FROM bugloo.tbl_company;

运行此查询后,我的输出日期将转换为 %dd/%mm/%yyyy