第一篇 必知函数
-
- 行转列: 单字段(列)多行转单列一行; --dbo.wg_getbrudt()
- 列转行:带逗号单列单行字符串列表转表格(同1.相反); --dbo.fu_listToTb()
- 列转行(金蝶版本):支持自定义连接符的字符串拆分转表格: -- dbo.fn_SplitStringToTable()
- 列转行: 带逗号单列单行表串转2列多行表格;
--(如: select dbo.fu_list2ToTb('1:a,2:b,3:c,4:d,5:e') 可得到有1,2,3,45值的f1字段 )
-
- 合并字符串的函数,将多个字符通过"关联字符串"连趣来(最多4个)--dbo.StrUnion()
- USA/EN英文日期格式化转换函数; -- xt_func_dateformat()
- 向上取整函数; -- dbo.uppernum(@num float)
- 根据传入日期,判断是否为仓库合理日期; -- dbo.Mygetstdt('2005-12-01')
根据传入日期,判断是否为仓库合理日期,如果不是,则返加合理日期,是则返回本身
--传入日期小于期间开始日期,则返加开始日期,大于期间结束日期,则返回结束日期.
-
- 取会计期间信息; -- dbo.myfun()
- 数字转中文大写: -- dbo.NumberToCapital(2)
- 取中文大写金额单位(零/分/角/圆/佰/仟/万….); --dbo.GetMoneyUnit()
- 金额转中文大写金额; -- dbo.MoneyToCapital(5410011.11,'1',2)
- 金额转英文金额: --- dbo.fu_numtoeng('USA','12333.34')
- 长日期转短日期; -- dbo.longdatetoshortdate()
- 取日期的年/月/日; -- dbo.getymd(‘2010-01-01’,’y’)
- 根据物料编号的单位的精度返回对应精度的值;
--dbo.getunitsqty ('WIF-004-0001',123.37773)
-
- 将小数显示转化成分数显示; -- dbo.fu_xiaotofeng(1.25)
- 取日期汇率; -- dbo.fn_get_currate('2010-09-08','HKD')
- 助记码自动生成函数(中文字符自动生成拼音首字母检索码,方便检索); --dbo.f_GetPY(‘测试一下拼音首字母取字’)
- 飞讯ERP取单据号函数;
declare @newcode tstridb, @errflg int
exec fn_pr_getNewcode 0,6009,1,'', @newcode output, @errflg output,'pu_ropplan','ropno','',0
SELECT @newcode AS newcode
-
- 精确计算 两个日期之间的年月天数: (适用于计算工作天数, 工作年限)
select dbo.getdiff('2001-02-03','2011-09-01')
--------------------------------
+10年06月29天
-
- 将字符型数字转为数值型数据(decimal(18,6))的函数:
select dbo.fun_strtodecimal('33,393,993.676455')
-
- 取一个月的每天的星期数函数:
select dbo.fun_mothweekday('2011-02-01','31')
-
- 将数值型数字转为字符型数据(去掉尾0,小数点)的函数:
select dbo.fun_decimal2str(9902023.010009000)
25. SQL SERVER 查找某个字符在字符串中出现的次数:
select dbo.func_qql_QueryCharCountFromString('asdf.asdfa.asdfaff.fsdf','.')
26. 取指定日期的对应的周x(周一、二、三、四、五、六、日)
select dbo.fun_qql_getweekday(getdate())
注:有用的业务函数,可以从其它大型ERP系统中迁移过来! 多看看别人的系统结构和设计。