我有一个应用程序,它以以下格式返回日期:" 2016年9月22日星期四"我想查询已存储的sql server数据库 日期格式为" 2016-09-06"。 SQL Server是否提供任何内置的转换功能(特别是3个字母的月份名称)? 请告诉我。
答案 0 :(得分:0)
SQL Server具有有限的日期转换支持。这些在documentation中描述。
我认为这可以满足您的需求:
select convert(date, substring(col, 5, 6) + ',' + right(col, 5), 107)
我们的想法是将您的字符串转换为" 2016年9月22日"然后使用它进行转换。假设您的国际化格式设置为英语,那么这种方法应该可行。
答案 1 :(得分:0)
您可以使用FORMAT
示例:
DECLARE @d DATETIME = '10/01/2011';
SELECT FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result'
,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result'
,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result'
,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result';
SELECT FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result'
,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result'
,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result'
,FORMAT ( @d, 'D', 'zh-cn' ) AS 'Chinese (Simplified PRC) Result';
答案 2 :(得分:0)
试试这个:
<xmlproperty file="pom.xml" prefix="pom" />
<echo>The version is ${pom.project.version}</echo>
答案 3 :(得分:0)
您唯一要做的就是删除字符串日期格式的星期几部分。删除后,该字符串采用SQL Server的标准日期格式。
Declare @yourTable table (
Id int identity(1,1),
YourDate datetime2
)
Insert into @yourTable values
('2016-09-22'),
('2016-09-16'),
('2016-09-22')
Declare @appDate varchar(100) = 'Thu Sep 22 2016'
Set @appDate = ltrim(substring(@appDate,4,len(@appDate)-3))
select * from @yourTable where cast(YourDate as date) = @appDate
我还将表中的日期时间转换为日期,以避免在查询时使用日期时间的时间组件。