lightdb支持cast(expr as unsigned)-mysql兼容

LightDB 从23.4开始支持mysql 的cast(expr as unsigned) 语法,下面说明下不兼容的注意点及示例

注意点

  • LightDB 还没有实际的unsigned bigint 类型
  • 返回类型与mysql不同,LightDB 为 numeric, mysql 为 unsigned bigint.
  • 表达式不能为日期/时间类型(mysql 支持)。具体见示例。
  • 字符串格式的浮点型不会被截断,这与mysql不同,mysql会截断,如’1.9’ 会被截断为1。具体见示例。
  • 负浮点型常量不会被截断,这与mysql5.7不同,mysql5.7会截断(mysql8不会),如-1.9 会被截断为0(但mysql中浮点型字段中存负数,转换时不会被截断)。具体见示例。

示例

lightdb@test_m=# select cast(123 as unsigned) as unsigned;unsigned 
----------123
(1 row)lightdb@test_m=# select cast(-123 as unsigned) as unsigned;unsigned       
----------------------18446744073709551493
(1 row)lightdb@test_m=# select cast(18446744073709551615 as unsigned) as unsigned;unsigned       
----------------------18446744073709551615
(1 row)lightdb@test_m=# select cast(18446744073709551616 as unsigned) as unsigned;
WARNING:  unsigned bigint out of range, Truncatedunsigned       
----------------------18446744073709551615
(1 row)lightdb@test_m=# select cast(-9223372036854775808 as unsigned) as unsigned;unsigned       
---------------------9223372036854775808
(1 row)lightdb@test_m=# select cast(-9223372036854775809 as unsigned) as unsigned;
WARNING:  unsigned bigint out of range, Truncatedunsigned 
----------0
(1 row)
lightdb@test_m=# select cast(1.4 as unsigned) as unsigned;unsigned 
----------1
(1 row)lightdb@test_m=# select cast(1.5 as unsigned) as unsigned;unsigned 
----------2
(1 row)lightdb@test_m=# select cast(1.9 as unsigned) as unsigned;unsigned 
----------2
(1 row)-- mysql5.7为 0 ,mysql8.0: 18446744073709551614
lightdb@test_m=# select cast(-1.9 as unsigned) as unsigned;unsigned       
----------------------18446744073709551614
(1 row)
-- mysql5.7为 0 ,mysql8.0: 18446744073709551614
lightdb@test_m=# select cast(-1.5 as unsigned) as unsigned;unsigned       
----------------------18446744073709551614
(1 row)
-- mysql5.7为 0 ,mysql8.0: 18446744073709551615
lightdb@test_m=# select cast(-1.4 as unsigned) as unsigned;unsigned       
----------------------18446744073709551615
(1 row)-- mysql: 1
lightdb@test_m=# select cast('1.4' as unsigned) as unsigned;unsigned 
----------1
(1 row)-- mysql: 1
lightdb@test_m=# select cast('1.5' as unsigned) as unsigned;unsigned 
----------2
(1 row)-- mysql: 1
lightdb@test_m=# select cast('1.9' as unsigned) as unsigned;unsigned 
----------2
(1 row)-- mysql: 18446744073709551615
lightdb@test_m=# select cast('-1.4' as unsigned) as unsigned;unsigned       
----------------------18446744073709551615
(1 row)-- mysql: 18446744073709551615
lightdb@test_m=# select cast('-1.5' as unsigned) as unsigned;unsigned       
----------------------18446744073709551614
(1 row)-- mysql: 18446744073709551615
lightdb@test_m=# select cast('-1.9' as unsigned) as unsigned;unsigned       
----------------------18446744073709551614
(1 row)lightdb@test_m=# create table test_c(key1 float4);
CREATE TABLE
lightdb@test_m=# insert into test_c values('-1.6');
INSERT 0 1
lightdb@test_m=# insert into test_c values('-1.4');
INSERT 0 1
lightdb@test_m=# insert into test_c values('-1.5');
INSERT 0 1
lightdb@test_m=# select cast(key1 as unsigned) , key1 from test_c;numeric2unsigned   | key1 
----------------------+------18446744073709551614 | -1.618446744073709551615 | -1.418446744073709551614 | -1.5
(3 rows)lightdb@test_m=# select cast(cast('20121212' as date) as unsigned);
ERROR:  cannot cast type date to numeric
LINE 1: select cast(cast('20121212' as date) as unsigned);^
lightdb@test_m=# 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/139757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Console LDAP 配置解密

之前通过短视频向大家介绍了 Console 如何集成 LDAP,但很多小伙伴反映按照视频里的配置后不成功。今天就结合小伙伴们反映的问题来跟大家详细介绍一下。 Console LDAP 完整的配置参数如下: 名称类型说明hoststringLDAP 服务器地址portintLDAP 服务器端口…

Spring Cloud和Kubernetes + Spring Boot 用哪个?

Spring Cloud和Kubernetes Spring Boot都是用于构建微服务架构的解决方案,它们各有优势和不足,选择哪个更好取决于你的具体需求和上下文。 Spring Cloud是一个基于Spring Boot的微服务开发框架,它提供了一套完整的微服务解决方案&#xff0…

Flink SQL自定义表值函数(Table Function)

使用场景: 表值函数即 UDTF,⽤于进⼀条数据,出多条数据的场景。 开发流程: 实现 org.apache.flink.table.functions.TableFunction 接⼝实现⼀个或者多个⾃定义的 eval 函数,名称必须叫做 eval,eval ⽅法…

TCP发送窗口、接收窗口以及其工作原理

1*KvfIrP_Iwq40uVdRZYGnQg.png 上面的图表是从发送方的角度拍摄的快照。我们可以将数据分为4组: 1.已发送并已确认的字节(蓝色)2.已发送但尚未确认的字节(黄色)3.未发送但接收方准备好接收的字节(绿色&…

2.如何实现API统一响应-web组件篇

文章目录 1. 统一响应1.1 CommonResult 1. 统一响应 前端调用api接口获得统一的响应: 成功,返回成功的状态码和数据;失败,返回失败的状态码和错误提示。 在标准的 RESTful API 的定义,是推荐使用 HTTP 响应状态码 (…

QT QSplashScreen

多数大型应用程序启动时都会在程序完全启动前显示一个启动画面,在程序完全启动后消失。程序启动画面可以显示相关产品的一些信息,使用户在等待程序启动的同时了解相关产品的功能,这也是一个宣传的方式。Qt中提供的QSplashScreen 类实现了在程…

KCC@广州与 TiDB 社区联手—广州开源盛宴

10月21日,KCC广州与 TiDB 社区联手,在海珠区保利中悦广场 29 楼召开了一次难忘的开源盛宴。这不仅仅是 KCC广州的又一次线下见面,更代表着与 TiDB 社区及广州技术社区的首次深度合作。 活动的策划与组织由 KCC广州负责人 - 惠世冀、PingCAP 的…

归并排序 图解 递归 + 非递归 + 笔记

前置知识:讲解019-算法笔试中处理输入和输出,讲解020-递归和master公式 (1)左部分排好序,右部分排好序,利用merge过程让左右整体有序(2)merge过程:谁小拷贝谁,直到左右两部分所有的数字耗尽(3)递归实现和非递归实现(4…

浙大恩特客户资源管理系统 fileupload.jsp 任意文件上传

一、漏洞描述 杭州恩软信息技术有限公司(浙大恩特)提供外贸管理软件、外贸客户管理软件等外贸软件,是一家专注于外贸客户资源管理及订单管理产品及服务的综合性公司。 浙大恩特客户资源管理系统中的fileupload.jsp接口存在安全漏洞&#xf…

DDD贫血模型、充血模型

贫血模型 贫血模型是一种软件开发中的设计模式,它指的是将数据和业务逻辑分离的一种设计模式,其中数据和领域模型是独立于业务逻辑的。在贫血模型中,数据由数据对象存储,而业务逻辑由服务对象处理。这种设计模式的优点是使代码更…

Android修行手册 - 万字梳理JNI开发正确技巧和错误缺陷

JNI 简介 JNI,Java Native Interface,是 native code 的编程接口。JNI 使 Java 代码程序可以与 native code 交互——在 Java 程序中调用 native code;在 native code 中嵌入 Java 虚拟机调用 Java 的代码。 它支持将 Java 代码与使用其他…

二十三种设计模式全面解析-解密迭代器模式:探索遍历之道

在软件开发中,遍历数据集合是一个非常常见的需求。但是,如何以一种优雅、灵活的方式遍历集合,并且能够适应各种不同的数据结构和迭代方式,一直是开发者们面临的挑战。今天,我将带你深入探索迭代器模式(Iter…

vue3 开启 https

1、安装mkcert证书创建器 npm i mkcert -g 2、检验是否安装成功 mkcert --version 有版本好出现则成功 3、创建证书颁发机构 mkcert create-ca 会在当前目录生成,ca.crt 和 ca.key 两个文件 4、创建证书 mkcert create-cert 会在当前目录生成,…

如何使用 NFTScan NFT API 在 zkSync 网络上开发 Web3 应用

zkSync 是由 Matter Labs 创建的,是一个以用户为中心的 zk rollup 平台,它是以太坊的第 2 层扩展解决方案,使用 zk-rollups 作为扩展技术,与 optimistic rollups 一样,zk-rollups 将会汇总以太坊主网上的交易并将交易证…

力扣117双周赛

第 117 场双周赛 给小朋友们分糖果 I 同T2 给小朋友们分糖果 II 数学 class Solution { public:long long distributeCandies(int n, int limit) {long long ans 0;for (int i 0; i < min(n, limit); i) {if (n - i < limit) {ans n - i 1;} else if (n - i <…

刷题学习记录BUUCTF

[极客大挑战 2019]RCE ME1 进入环境直接就有代码 <?php error_reporting(0); if(isset($_GET[code])){$code$_GET[code];if(strlen($code)>40){die("This is too Long.");}if(preg_match("/[A-Za-z0-9]/",$code)){die("NO.");}eval($co…

JSP运行环境搭建

将安装JSP引擎的计算机称作一个支持JSP的Web服务器。这个服务器负责运行JSP&#xff0c;并将运行结果返回给用户。 JSP的核心内容之一就是编写JSP页面,JSP页面是Web应用程序的重要组成部分之一。一个简单Web应用程序可能只有一个JSP页面,而一个复杂的Web应用程序可能由许多JSP…

Ubuntu18.04.6安装qt5.7.1(超级详细教程)

目录 1、下载对应Linux版本的qt 2、安装完qt&#xff0c;可能也要安装下对应的编译工具 1、下载对应Linux版本的qt &#xff08;1&#xff09;准备安装的是qt5.7.1&#xff1a;qt-opensource-linux-x64-5.7.1.run &#xff08;2&#xff09;在虚拟机进入存放qt安装包的目录…

100天精通风控建模(原理+Python实现)——第5天:风控建模中数据标准化是什么?

风控模型已在各大银行和公司都实际运用于业务,用于营销和风险控制等。    之前已经阐述了100天精通风控建模(原理+Python实现)——第1天:什么是风控建模?    100天精通风控建模(原理+Python实现)——第2天:风控建模有什么目的?    100天精通风控建模(原理+Python实现…