学习SQL Server有一些我不确定的事情:
datetime
字段,其值为:
2012-02-26 09:34:00.000
如果我使用以下方式选择表:
CAST(dob2 AS VARCHAR(12) ) AS d1
将其格式化为:
Feb 26 2012
我不确定他的SQL Server如何或为何格式化DateTime。如果你使用datetime2
它没有 - 任何人都知道为什么?
答案 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)
答案 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
--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