MSSQL日期转换问题---在线等!

dgdai 2006-12-27 12:02:01
现有一行文本“TBA-11/06/2005" 或 "05/01/2007 (1,000.000 PCS)"
请问怎么写可以能让它在报表显示为“TBA-11/Jun/2005" 或 "05/Jan/2007 (1,000.000 PCS)"

谢谢!
...全文
374 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dgdai 2006-12-29
  • 打赏
  • 举报
回复
请大侠帮忙解决这个问题,谢谢!
dgdai 2006-12-27
  • 打赏
  • 举报
回复
31/Jan/2007 (7,320.000 M) * 01/02/2007 (7,320.000 M)
12/Feb/2007 (300.000 KG) * 05/Feb/2007 (300.000 KG)

就像这两笔记录,第一条就不能完全转换过来,而第二条就可以。
dgdai 2006-12-27
  • 打赏
  • 举报
回复
谢谢,Marco08,这个方法是可以,但是不能完全。
例如:“TBA-11/06/2005 *05/01/2007 (1,000.000 PCS) *05/12/2007 (1,000.000 PCS)"
这样的文本怎么转,还有就是这个字段还有可能是01~12任意一个月都有,又该怎么转,
谢谢!
playwarcraft 2006-12-27
  • 打赏
  • 举报
回复
--這個可以不?
create table TEST(value varchar(50))
insert into TEST
select 'TBA-11/06/2005'
union select '05/01/2007 (1,000.000 PCS)'
union select 'TT- 21/03/2006-(SB)'

select replace(value,substring(value,charindex('/',value),4),'/'+convert(char(03),convert(datetime,'1900'+substring(value,charindex('/',value)+1,2)+'01'),109)+'/')
from TEST

/*

TBA-11/Jun/2005
05/Jan/2007 (1,000.000 PCS)
TT- 21/Mar/2006-(SB)

*/

drop table test
marco08 2006-12-27
  • 打赏
  • 举报
回复

--提供一個方法, 用replace函數替換。不行不要罵我
declare @str varchar(200)
select @str='TBA-11/06/2005'
select replace(@str, '/06/', '/Jun/')

--result
TBA-11/Jun/2005

(1 row(s) affected)
wyfccc 2006-12-27
  • 打赏
  • 举报
回复
字节写函数组合,
想走捷径,也忒懒了
dgdai 2006-12-27
  • 打赏
  • 举报
回复
谢谢,但是我这是一行文本,不是日期格式!
marco08 2006-12-27
  • 打赏
  • 举报
回复
declare @dt datetime
set dateformat DMY
set language N'English'
set @dt='05/01/2007'
select convert(varchar, @dt, 109)

--result
------------------------------
Jan 5 2007 12:00:00:000AM

(1 row(s) affected)

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧