将SQL日期键设置为正常日期
我有一个SQL日期键,看起来像这样将SQL日期键设置为正常日期,sql,sql-server,Sql,Sql Server,我有一个SQL日期键,看起来像这样 YYYYMMDD 这是使用 Convert(varchar,[ModifiedOn],112)) 但是,我希望此字段在视图中显示英国的正常日期格式为DD-MM-YYYY 我该怎么做呢 谢谢。只要尝试CONVERT(VARCHAR(10),CAST(YourStringDate AS DATE),105) 由于日期值YYYYMMDD似乎是一个所谓未分离格式的字符串(而不是BIGINT),SQL Server将隐式地将此字符串转换为dateCONVERT与10
YYYYMMDD
这是使用
Convert(varchar,[ModifiedOn],112))
但是,我希望此字段在视图中显示英国的正常日期格式为DD-MM-YYYY
我该怎么做呢
谢谢。只要尝试CONVERT(VARCHAR(10),CAST(YourStringDate AS DATE),105)
由于日期值YYYYMMDD
似乎是一个所谓未分离格式的字符串(而不是BIGINT
),SQL Server将隐式地将此字符串转换为date
CONVERT
与105一起将按您所需的方式格式化
从SQL Server 2012开始,有FORMAT()
。您可以使用以下选项:
SELECT FORMAT(CAST(YourStringDate AS DATE),'dd-MM-yyyy')
只需尝试CONVERT(VARCHAR(10),CAST(YourStringDate为DATE),105)
由于日期值YYYYMMDD
似乎是一个所谓未分离格式的字符串(而不是BIGINT
),SQL Server将隐式地将此字符串转换为date
CONVERT
与105一起将按您所需的方式格式化
从SQL Server 2012开始,有FORMAT()
。您可以使用以下选项:
SELECT FORMAT(CAST(YourStringDate AS DATE),'dd-MM-yyyy')
一种方法省去了日期,只使用字符串算术:
select (right(ModifiedOn, 2) + '-' +
substring(ModifiedOn, 3, 2) + '-' +
left(ModifiedOn, 4)
) as mmddyyyy
一种方法省去了日期,只使用字符串算术:
select (right(ModifiedOn, 2) + '-' +
substring(ModifiedOn, 3, 2) + '-' +
left(ModifiedOn, 4)
) as mmddyyyy
一种方法是向数据库中添加一个
日期表可以方便地选择预先计算的格式,供您切换
它们也是有用的聚合目标(GROUP BY DATENAME(季度,CAST(DateKey AS DATE))
VsGROUP BY DimDate。[Quater]
)
包含:
DateKey [Date] [Year] [Quater] [DD_MM_YYYY]
--------------------------------------------------------
20160101 2016-01-01 2016 Q1 01-01-2016
20160102 2016-01-02 2016 Q1 02-01-2016
...
20161231 2016-12-31 2016 Q4 31-12-2016
有一个反对在数据库中设置格式的论点。Proponants会告诉您,格式化是一种表面操作,最好在表示层中执行。他们说,你的数据库应该只存储冷酷的事实。就我个人而言,我不太确定。我同意SQL不是用于格式化的最佳语言,但有时它是唯一起作用的语言。一种方法是向数据库中添加一个
日期表可以方便地选择预先计算的格式,供您切换
它们也是有用的聚合目标(GROUP BY DATENAME(季度,CAST(DateKey AS DATE))
VsGROUP BY DimDate。[Quater]
)
包含:
DateKey [Date] [Year] [Quater] [DD_MM_YYYY]
--------------------------------------------------------
20160101 2016-01-01 2016 Q1 01-01-2016
20160102 2016-01-02 2016 Q1 02-01-2016
...
20161231 2016-12-31 2016 Q4 31-12-2016
有一个反对在数据库中设置格式的论点。Proponants会告诉您,格式化是一种表面操作,最好在表示层中执行。他们说,你的数据库应该只存储冷酷的事实。就我个人而言,我不太确定。我同意SQL不是用于格式化的最佳语言,但有时它是唯一的语言。列数据类型?它是varchar(10)为什么不直接使用modifiedOn列而不是使用中间格式?这个问题解决了吗?你需要进一步的帮助吗?请允许我一个提示:如果这个问题得到解决,您将非常感谢,在(最佳)答案的投票柜台下方勾选接受检查。这将1)将此问题标记为已解决2)使追随者更容易找到最佳解决方案3)向回答者支付积分,4)向您支付积分。因为你自己已经越过了15点的边界,你被要求对捐款进行投票。这就是说谢谢的方式。快乐编码!列数据类型?它是一个varchar(10)为什么不直接使用modifiedOn列而不是使用中间格式?这个问题解决了吗?你需要进一步的帮助吗?请允许我一个提示:如果这个问题得到解决,您将非常感谢,在(最佳)答案的投票柜台下方勾选接受检查。这将1)将此问题标记为已解决2)使追随者更容易找到最佳解决方案3)向回答者支付积分,4)向您支付积分。因为你自己已经越过了15点的边界,你被要求对捐款进行投票。这就是说谢谢的方式。快乐编码!