2011-06-17 232 views
1

我期待的日期从甲YYYYMMDD转换为毫米DD YYYYSQL日期转换

我发现相当few的SQL语句resources。但我太新了,不知道我在找什么。

我有以下的表现,我需要它,拍出来的日期

select Date_of_hire from Employee where employeeID='input' 
+4

有没有理由不在应用程序代码中执行此操作? – Oded

+0

该应用程序不是我正在运行查询的数据库的本地数据库。我想我只能运行基本的SQL查询并将它们吐出到界面。我会研究这个,看看我能不能做到这一点。谢谢 – Nixphoe

回答

1

我碰到的这几次从(存储为串号)到SQL表中的AS400导入数据,其中没有中间的任何应用程序做格式化,所以我可以看到你为什么想要这样做。
。看看演员和转换()(http://msdn.microsoft.com/en-us/library/ms187928.aspx

select Convert(varchar,Cast(Date_of_hire as datetime) ,101) as Date_of_hire from Employee where employeeID='input' 

这将格式化像01/01/2001。
转换的问题在于它如何对其进行格式化确实受到限制。
要从这样的字符串中获取日期,您可以将转换为日期时间并转换为日期时间。

+0

谢谢,演员和日期时间正是我所需要的。 – Nixphoe

+0

很高兴我能帮到你 – AndyD273

3

选择日期格式的作业最好在表示层完成(表单应用程序,您的ASP应用程序,您的报告等)。让SQL简单地返回DATETIME字段,并通过适当地设置输出您的应用程序以任何您喜欢的格式呈现它。

+0

该应用程序不是我正在运行查询的数据库的本地数据库。所以我不确定我能否做到这一点。我会研究这个。谢谢你的提示! – Nixphoe

1

这将工作:

select replace(convert(varchar, Date_of_hire, 101), '/', ' ') 
from Employee where employeeID='input' 
4
SELECT REPLACE(CONVERT(VARCHAR(10), requested, 110), '-', ' ') AS hiredate 

看看http://www.sql-server-helper.com/tips/date-formats.aspx以备将来参考。请注意,这相当于

SELECT REPLACE(CONVERT(VARCHAR(10), requested, 101), '/', ' ') AS hiredate 
+0

转换会不会在sql表中改变什么呢? – Nixphoe

+1

仅对插入,更新或删除命令发生表的更改,因此简单的选择无法更改数据 – Mark

+1

它不会更改SQL表中的任何内容。 – tofutim