添加星期几和保持日期

时间:2017-01-20 20:48:44

标签: sql-server-2008 date

我知道这个星期几的功能"从日期值。是否有可能获得"星期几"并将日期保留在同一列中?

示例记录:2017年1月20日

预期产出:2017年1月20日星期五

我使用的是Microsoft SQL Server 2008 R2。

2 个答案:

答案 0 :(得分:0)

我不确定

但看起来你正在寻找像这样的东西

DECLARE @dummyDate VARCHAR(50) = 'January 20, 2017'

SET @dummyDate =  (SELECT CONCAT(DATENAME(dw,@dummyDate ),','+@dummyDate ))
SELECT @dummyDate 

这里的例子 http://rextester.com/WLMU29292

答案 1 :(得分:0)

主要问题是:如何存储价值?

真实的 DATE还是DATETIME(还有更多)列,还是将此值存储为字符串?

合适的类型

如果此值存储在适当类型的列中,则内部值不是您看到的值。你看到的是对内部存储的二进制值的文本表示,并取决于语言和文化设置。

字符串类型

如果此值存储为您向我们显示的文本,我会真的推动它来改变它。 特定于文化的格式很糟糕,但特定于文化的和语言相关的格式直接来自地狱...

正如Jon Skeet在评论中告诉你的那样,格式化问题在你的演示层中做得更好。

FACIT

  • 从不存储这样的日期格式
  • 使用正确的类型存储日期和时间值
  • 在您阅读此值时(在您的通话应用程序中最佳),格式化即时
  • 如果您需要在SQL中完成此操作(报告?),您需要CONVERT使用相应的格式代码(107?)并将其与日期名称连接起来。