以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 简单问题(求月份) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=1011) |
||||
-- 作者:表之狂 -- 发布时间:2008/10/29 16:25:00 -- 简单问题(求月份) 表中有日期列,月份列,想在月份列自动求日期列中的月份,要求每年的12月26算下一年的一月,每月26日开始,25日结束,谢谢 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2008/10/29 16:38:00 --
|
||||
-- 作者:don -- 发布时间:2008/10/29 17:13:00 -- 表達式也可以,不過複雜點,下面是"D/M/YYYY"格式的: IIF(Convert(SubString(Convert([日期],\'System.String\'),IIF(SubString(Convert([日期],\'System.String\'),1,2) Like \'*/*\',3,4),IIF(SubString(Convert([日期],\'System.String\'),IIF(SubString(Convert([日期],\'System.String\'),1,2) Like \'*/*\',3,4),2) Like \'*/*\',1,2)),\'System.Byte\')+Convert(IIF(SubString(Convert([日期],\'System.String\'),1,IIF(SubString(Convert([日期],\'System.String\'),1,2) Like \'*/*\',1,2)) > 25,1,0),\'System.Byte\') > 12,1,Convert(SubString(Convert([日期],\'System.String\'),IIF(SubString(Convert([日期],\'System.String\'),1,2) Like \'*/*\',3,4),IIF(SubString(Convert([日期],\'System.String\'),IIF(SubString(Convert([日期],\'System.String\'),1,2) Like \'*/*\',3,4),2) Like \'*/*\',1,2)),\'System.Byte\')+Convert(IIF(SubString(Convert([日期],\'System.String\'),1,IIF(SubString(Convert([日期],\'System.String\'),1,2) Like \'*/*\',1,2)) > 25,1,0),\'System.Byte\')) |
||||
-- 作者:狐狸爸爸 -- 发布时间:2008/10/29 17:19:00 -- 哈哈,还说不难,我看得头晕了。 |
||||
-- 作者:don -- 发布时间:2008/10/29 17:34:00 -- 以下是引用狐狸爸爸在2008-10-29 17:19:00的发言:
你这个是香港日期吧,不适合大陆日期。 适合大陆日期的,請測試: |
||||
-- 作者:don -- 发布时间:2008/10/29 17:49:00 -- 把下面表達式的"[T]"替換為"Convert([日期],\'System.String\')"就是5樓的: IIF(Convert(IIF(SUBSTRING([T],7,1) = \'-\', SUBSTRING([T],6,1),SUBSTRING([T],6,2)),\'System.Byte\')+IIF(Convert(SubString([T],IIF(SubString([T],8,2) Like \'*-*\',9,8),2),\'System.Byte\') > 25,1,0)>12,1,Convert(IIF(SUBSTRING([T],7,1) = \'-\', SUBSTRING([T],6,1),SUBSTRING([T],6,2)),\'System.Byte\')+IIF(Convert(SubString([T],IIF(SubString([T],8,2) Like \'*-*\',9,8),2),\'System.Byte\') > 25,1,0))
[此贴子已经被作者于2008-10-29 17:55:14编辑过]
|
||||
-- 作者:表之狂 -- 发布时间:2008/10/29 18:22:00 -- 老六,以上的解决方法都复杂,你还是尽快解决到像易表那样,不太复杂的功能用表达式解决不是更好吗。 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2008/10/29 19:12:00 -- 以下是引用表之狂在2008-10-29 18:22:00的发言:
老六,以上的解决方法都复杂,你还是尽快解决到像易表那样,不太复杂的功能用表达式解决不是更好吗。
[此贴子已经被作者于2008-10-29 19:12:39编辑过]
|
||||
-- 作者:don -- 发布时间:2008/10/29 20:56:00 -- 以下是引用狐狸爸爸在2008-10-29 19:12:00的发言:
嘻嘻,还是易表简单点: |
||||
-- 作者:狐狸爸爸 -- 发布时间:2008/10/29 21:22:00 -- 呵呵,那我以简单点: If e.DataCol.Name = "日期" Then Dim d As Date = e.NewValue e.DataRow("月份") = iif(e.NewValue Is Nothing,Nothing, iif(d.day<= 25,d.month,(d.month + 1) mod 12)) End If 不过我还是喜欢之前那种方式,虽然长一点,但是可读性强多了。 [此贴子已经被作者于2008-10-29 21:25:33编辑过]
|