在Epicor的数据库中,时间存储的是String类型,以下整理了几种转换成时间格式的方式和应用场景:
1.在BAQ中如何转换
在BAQ中创建一个Calculation的字段,定义如下:
DataType = nvarchar
Format x(8)
Editor:
CONVERT(char(8),DateAdd(second,Table.Fieldname,‘0:00:00’), 108)
For example:
CONVERT(char(8),DateAdd(second,OrderHed.ChangeTime,‘0:00:00’), 108)
执行BAQ可得到类似下面的结果
2.在SQL脚本中的转换
转换的公式同BAQ一样,如下:
CONVERT(char(8),DateAdd(second,OrderHed.ChangeTime,'0:00:00'), 108)
or
CONVERT(char(8),DateAdd(second,OrderHed.ChangeTime,'00:00:00'), 108)
以上两个仅仅是在小时小于10是,是否在前面补0显示。
for example:
select CONVERT(char(8),DateAdd(second,SysTime,'00:00:00'), 108) as TranTime from Erp.PartTran
3. 调用Epicor数据库自带的函数
在Epicor标准的数据库中,已经内置了一个转换函数Ice.StringTime,直接调用也可以。
For Example:
select Ice.StringTime(SysTime,'00:00:00') as TranTime from Erp.PartTran