[ABI 5.2] 主题表没有时分秒,计算出结果带有时分秒,主题表原本带有的时分秒在计算结果里又都变成了00:00:00

25710
12

luofei369 初学数据Lv2

发表于2021-4-7 14:59

悬赏1

已解决

楼主
本帖最后由 luofei369 于 2021-4-7 15:04 编辑

这是我建立的主题表主表

这两个字段是日期型的 无时分秒

但是到最终计算结果的表格里就带了时分秒

creat_at 字段本身带有时分秒
然后结果是这样


我在表格里是直接取的这个主题表的这两个字段 没有做任何处理


最近看过此主题的会员

esen_4TVDIWAUN8

清香茉莉

一一

doubao

wsn123

天晴放羊

yhy416769852

jsyjsyjjk

q798355050

hanne

sunning2021

whr

xxxl

bbs

最佳答案
luofei369 发表于 2021-4-7 16:06
带时分秒的数据成这样了.....后面多了个.0

实在不行用datetostr函数处理吧 ,把字段类型改回日期类型
在分析表的显式表达式中写datetostr(self.txt,'yyyy-mm-dd')

datetostr函数说明如下
DATETOSTR

定义:DATETOSR(D), 或DATETOSR(D,C)

将一日期转变成字符串。

参数:

D 要转换为字符串的日期,也可以是字符串。

C  字符串的格式,
1、可忽略此参数。忽略此参数后,默认为yyyy-mm-dd
2、字符串格式中,y表示年,m表示月,d表示日
3、字符串格式中,如果是小写字母(y,m,d),则返回值取阿拉伯数字(123等);如果是大写字母(Y,M,D),返回值为汉字(一二三等)
4、字符串格式中,支持三个连续的mmm,表示将月份转换成英文

示例:

例如,日期常量为#2006-10-01#
   DATETOSTR(#2006-10-01#)=2006-10-01
   DATETOSTR(#2006-10-01#,"yyyy-mm-dd")=2006-10-01
   DATETOSTR(#2006-10-01#,"yyyy年mm月dd日")=2006年10月01日
   DATETOSTR(#2006-10-01#,"YYYY年MM月DD日")=二零零六年十月一日
   DATETOSTR(#2006-10-01#,"yy年mm月dd")=06年10月01
   DATETOSTR(#2006-10-01#,"YY年MM月DD")=零六年十月一

   下面的示例中,参数为字符串表示的日期:
   DATETOSTR('20010801','ddmmmyyyy')=08 Aug 2001

下面的示例中,函数的参数为报表模板中使用的日期型的报表参数变量:
DATETOSTR(@bbq,'yyyy年mm月dd日'),其中@bbq为日期型的报表参数变量。例如,报表模板中在表头上显示数据期时,常这样设置:
“数据期:<#=datetostr(@month,'yyyy年mm月')#>”。


12个回答

只看楼主

xxxl 数据领袖Lv6

发表于2021-4-7 15:05

只看该作者

取消 关注该作者的回复

沙发

字段在表格中设置是什么数据类型

luofei369 初学数据Lv2

发表于2021-4-7 15:11

只看该作者

取消 关注该作者的回复

板凳

xxxl 发表于 2021-4-7 15:05
字段在表格中设置是什么数据类型

上面的图上有  日期类型  带时分秒的是 19位  不带时分秒的是 10位 都是默认的

luofei369 初学数据Lv2

发表于2021-4-7 15:13

只看该作者

取消 关注该作者的回复

地板

xxxl 发表于 2021-4-7 15:05
字段在表格中设置是什么数据类型

我主题表如果设置不缓存 那个带时分秒就能完整显示了 不带时分秒的 还是会带00:00:00

但是如果设置缓存在内存中  所有的日期就都变成 带时分秒了并且时分秒都变为了00:00:00 无论真实数据是有时分秒还是无时分秒都是00:00:00

xxxl 数据领袖Lv6

发表于2021-4-7 15:24

只看该作者

取消 关注该作者的回复

5#

luofei369 发表于 2021-4-7 15:13
我主题表如果设置不缓存 那个带时分秒就能完整显示了 不带时分秒的 还是会带00:00:00

但是如果设置缓 ...

您用的是sql主题表吗  表格里的数据类型换成字符型呢

luofei369 初学数据Lv2

发表于2021-4-7 15:33

只看该作者

取消 关注该作者的回复

6#

xxxl 发表于 2021-4-7 15:24
您用的是sql主题表吗  表格里的数据类型换成字符型呢

字符型好像可以正常显示了...

xxxl 数据领袖Lv6

发表于2021-4-7 15:35

只看该作者

取消 关注该作者的回复

7#

luofei369 发表于 2021-4-7 15:33
字符型好像可以正常显示了...

嗯嗯

luofei369 初学数据Lv2

发表于2021-4-7 16:06

只看该作者

取消 关注该作者的回复

8#



带时分秒的数据成这样了.....后面多了个.0

xxxl 数据领袖Lv6

发表于2021-4-7 14:59

只看该作者

取消 关注该作者的回复

9#

luofei369 发表于 2021-4-7 16:06
带时分秒的数据成这样了.....后面多了个.0

实在不行用datetostr函数处理吧 ,把字段类型改回日期类型
在分析表的显式表达式中写datetostr(self.txt,'yyyy-mm-dd')

datetostr函数说明如下
DATETOSTR

定义:DATETOSR(D), 或DATETOSR(D,C)

将一日期转变成字符串。

参数:

D 要转换为字符串的日期,也可以是字符串。

C  字符串的格式,
1、可忽略此参数。忽略此参数后,默认为yyyy-mm-dd
2、字符串格式中,y表示年,m表示月,d表示日
3、字符串格式中,如果是小写字母(y,m,d),则返回值取阿拉伯数字(123等);如果是大写字母(Y,M,D),返回值为汉字(一二三等)
4、字符串格式中,支持三个连续的mmm,表示将月份转换成英文

示例:

例如,日期常量为#2006-10-01#
   DATETOSTR(#2006-10-01#)=2006-10-01
   DATETOSTR(#2006-10-01#,"yyyy-mm-dd")=2006-10-01
   DATETOSTR(#2006-10-01#,"yyyy年mm月dd日")=2006年10月01日
   DATETOSTR(#2006-10-01#,"YYYY年MM月DD日")=二零零六年十月一日
   DATETOSTR(#2006-10-01#,"yy年mm月dd")=06年10月01
   DATETOSTR(#2006-10-01#,"YY年MM月DD")=零六年十月一

   下面的示例中,参数为字符串表示的日期:
   DATETOSTR('20010801','ddmmmyyyy')=08 Aug 2001

下面的示例中,函数的参数为报表模板中使用的日期型的报表参数变量:
DATETOSTR(@bbq,'yyyy年mm月dd日'),其中@bbq为日期型的报表参数变量。例如,报表模板中在表头上显示数据期时,常这样设置:
“数据期:<#=datetostr(@month,'yyyy年mm月')#>”。


luofei369 初学数据Lv2

发表于2021-4-7 16:22

只看该作者

取消 关注该作者的回复

10#

xxxl 发表于 2021-4-7 16:10
实在不行用datetostr函数处理吧 ,把字段类型改回日期类型
在分析表的显式表达式中写datetostr(self.txt, ...

好像是错的  我写的是datetostr(self.txt,'yyyy-mm-dd hh:nn:ss')
还是这样,我是怀疑数据转到内存中的时候 时分秒就已经丢失了 所以再怎么转换都是没用的


luofei369 初学数据Lv2

发表于2021-4-7 16:27

只看该作者

取消 关注该作者的回复

11#

解决了 还是得用字符串保存 然后再用函数强制转换格式...

上一页12下一页共2页

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号