首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用order by 排序后的是10 6 7 8 9 而不是 6 7 8 9 10?

问题 sql order by 排序后的为什么 是10 6 7 8 9 而不是 6 7 8 9 10? 思路 在 SQL 中,ORDER BY 默认的排序方式是升序(从小到大)。...ORDER BY 对某个列进行排序,它会将数字按照升序排列,即: SELECT your_column FROM your_table ORDER BY your_column; 上面的语句会得到: 6...7 8 9 10 如果您得到的排序结果是 10, 6, 7, 8, 9,那可能是因为列的数据类型被当作字符串类型而非数字类型来排序。...在字符串排序中,“10” 会在 “6” 前面,因为字符串排序是按照字符的字典顺序,而 “1” 的字典顺序在 “6” 之前。...如果列中含有无法转换为整数的字符串,这个查询将会失败,因此需要确保列中的所有值都是有效的整数字符串。 解决 将字符转换成int类型后成功解决!

31220
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    详解PostgreSQL数据类型

    char和varchar超出长度的字符都是空白,这种情况下该字串将被截断为最大长度。 如果没有长度声明,char等于char(1),而varchar则可以接受任何长度的字串。...数字类型 由2、4或8字节的整数以及4或8字节的浮点数和可选精度小数组成。...8字节 大范围整数 -9223372036854775808 to +9223372036854775807 decimal 可变 用户指定精度,精确 最高小数点前131072位,以及小数点后16383...位 numeric 可变 用户指定精度,精确 最高小数点前131072位,以及小数点后16383位 real 4字节 可变精度,不精确 6位十进制精度 double precision 8字节 可变精度...19字节 IPv4和IPv6网络 inet 7或19字节 IPv4和IPv6主机以及网络 macaddr 6字节 MAC地址 位串类型 位串就是一串1和0的字串,可以用于存储和视觉化位掩码。

    1.6K50

    PHP的microtime()函数 & 浮点数显示精度

    咳咳,我一直对这个函数的命名挺纠结的,明明返回的是秒,非要在名字带个micro,总让我以为返沪的是微秒(microseconds)。...也就是说,如果不加参数TRUE,那么返回的是"msec sec"这样的形式,其中msec也就是用秒表示,也就是说是小数形式的秒。 如果加上参数TRUE,就更好理解喽,就是带小数的秒喽。...> 输出如下: C3TZR1g81UNaPs7vzNXHueW5ZM76DSHWEY7onmfLxcK2iNqEzdqWuQmnpCyJU6THRZpQKPxkyrcBfQHaQwZHVUfHokgVkSZRcBPuPjhKjTJ6hAZgVx6Ypfg.png...这还怎么精确到微秒啦?其实这只是由于浮点数显示精度设定导致的,并不影响运算(比如求时间差值)精度。 如果想让其更高精度的显示,可以试试如下代码: 的浮点数显示精度为12位,我们设置为16位后,就显示到小数点后6位啦。

    1.4K00

    速读原著-TCPIP(tcpdump的输出)

    其次,t c p d u m p输出的时间戳在一个微秒精度的系统中采用如同 0 9 : 11 : 2 2 . 6 4 2 0 0 8的格式,在一个1 0 m s时钟精度的系统中则如同 0 9 : 11...: 2 2 . 6 4一样(在附录 B中,我们更多地讨论了计算机时钟的精度)。...第1个差值在微秒精度的系统中打印到十进制小数点后面 6位(对于只有10 ms精度的系统打印到小数点后面2位),第2个差值打印到十进制小数点后面 4位或2位(依赖于时钟精度)。...本书中大多数t c p d u m p的输出都是在s u n主机上收集的,它提供了微秒精度。...一些输出收集于当b s d i主机运行1 . 0版B S D / 3 8 6时,后者提供了微秒级的精度。 t c p d u m p总是打印发送主机的名字,接着一个大于号,然后是目的主机的名字。

    63010

    速读原著-TCPIP(计算机时钟)

    正如RFC1305 [Mills 1992] 的表7指出的,你不要想知道这种振荡器一天的偏差有多少。这就意味着几乎没有计算机能维持精确的时间(即,中断并不是精确地每 10 ms发生一次)。...根据这一点,我们可以说进程调用g e t t i m e o f d a y所花的时间大约 3 7微秒。...如果我们在S V R 4 / 3 8 6上进行类似的测试,结果是不同的。这是因为很多 386 Unix 系统,如S V R 4,只计数 10 ms的时钟中断,而没有提供更高的精度。...在S V R 4的时钟时间为3 . 1 5秒,每个系统调用消耗了3 1 5微秒。这个大约比S PA R C慢8 . 5倍的系统调用时间看来是正确的。...在我们显示这个系统的t c p d u m p输出时,只显示到小数点后面两位,因为这就是所提供的精度。

    58310

    golang时间和mysql时间表示

    Time其实是实现了String函数的,因此可以print,打印出的时间格式为“年月日时分秒.小数秒” 精度为ns;后面还带着"m=±",表示单调时钟的s数表示,小数点后精度到ns func...-12-20 10:01:00.9只需要6个字节,小数秒精度为1字节。...如果要存储超过2038的时间值,则应使用DATETIME而不是TIMESTAMP。...总结下,也就是说常用的5.7版本,时间戳只能存到2038年,精度是秒,但是只需要4个字节,DATETIME存储的时间长度为5到8个字节,精度是微秒。...就导致了一个有趣的现象,在mysql的各个版本中,因为mysql在处理时间参数的时候做了精度的元整,如果在datetime字段上加了索引,即使传了精度为ns的时间,也会走索引。

    4.5K30

    如何统一数据包的时间戳

    通过部署镜像的方式来捕获数据包、进行数据分析是网络流量分析的关键环节。我们已经为大家推荐过三种镜像方法,以及如何高性能的捕获数据包。...千兆网络中64字节的最小数据包到达时间间隔是0.512微秒也就是512纳秒。...03 如何保证时间统一 通常给数据包标记时间戳的流程如下:数据包捕获程序驱动网卡,当数据包到达网卡,进入数据包捕获处理流程时会打上时间戳,而时间戳精度是和数据包捕获方式有关。...两种数据包捕获方式时间戳精度分析 ? Libpcap方式通过内核协议栈处理数据包,需要通过内核调用系统时间,开销相对较大,因此Libpcap时间戳只有微秒级; ?...天旦NPM采用了DPDK的数据包捕获方式,时间戳的精度就在纳秒级以上,为网络安全预警提供了更多可能性。

    3K20

    MySQL 8.0中DATE,DATETIME和 TIMESTAMP类型和5.7之间的差异

    本文介绍MySQL 8.0和MySQL 5.7之间的差异;本文MySQL实验环境为8.0.23; MySQL允许对DATETIME和 TIMESTAMP值使用小数秒 , 精度最高为微秒(6位数) CREATE...fsp指定一个介于0到6之间的可选值,以指定小数秒精度。值为0表示没有小数部分。如果省略,则默认精度为0。...fsp指定一个介于0到6之间的可选值,以指定小数秒精度。值为0表示没有小数部分。如果省略,则默认精度为0。...如果 explicit_defaults_for_timestamp 禁用,则服务器TIMESTAMP 将按以下方式处理: 除非另有说明,如果未显式分配值,则表中的第一 列TIMESTAMP被定义为自动设置为最新修改的日期和时间...但是,TIMESTAMP可以将表中的任何列定义为具有这些属性。 小数部分应始终与其余时间间隔一个小数点;无法识别其他小数秒分隔符。

    7.4K51

    基于STM32和HC-SR04模块实现超声波测距功能

    该传感器体积小,易于在任何机器人项目中使用,并提供2厘米至400厘米(约1英寸至13英尺)之间出色的非接触范围检测,精度为3mm。...脉冲的长度与检测发射信号所需的时间成正比,下面例程中用的GPIOB6,所以连接STM32的GPIOB6。 GND 应该连接到STM32的地。 HC-SR0如何工作?...当持续时间至少为10 µS(10微秒)的脉冲施加到触发引脚时,一切就开始了。响应于此,传感器以40 KHz发射八个脉冲的声音脉冲。...在这种情况下,您可能要考虑到空气中的声速随温度,气压和湿度而变化的事实。 由于声音因素进入HC-SR04距离计算的速度,因此可能会影响我们的读数。...的单位是10微秒,所以要得出单位为毫米的距离结果,还得除以100 } return Distance_mm; //返回测距结果 } float sonar(void

    2.2K31

    frm2sdi(3) 将frm文件转为sdi page & ibd2sql v1.9 出土

    where Charset='utf8';数字精度对于decimal的精度是来自field_length和pack_flagnumeric_precision 即字符长度(整数+小数,不含小数点), 为...field_length -2numeric_scale 为小数部分长度,是pack_flag的前1字节(注意是小端)的后4bit.代码逻辑参考: if col..., 比如毫秒,微秒之类的...., flag部分不是定长的, 而是一个bitmask, 用来表示某个字段是否有默认值, 而不管是否有默认值, DEFAULT_VALUE部分均会保留足够大的空间(varchar(200) default...计算默认值的时候, 还得考虑精度.元数据中的"recpos-1"即表示该字段位于DEFAULT_VALUE(bitmask)的起始位置, 结束位置是下一个字段的开始位置.是否为空字段非空约束则是来自 pack_flag

    24120

    Mysql - date、datetime、timestamp 的区别

    ' UTC - '2038-01-19 03:14:07' UTC 什么是 UTC 协调世界时间,世界统一时间,世界标准时间,国际协调时间 datetime 或 timestamp 值可以包括尾部小数秒部分...精度最高可达微秒(6 位小数位) 插入到 datetime 或 timestamp 列的值中的任何小数部分都会被保留而不是被丢弃 保留小数部分后,格式变成 YYYY-MM-DD hh:mm:ss[...默认情况下,每个连接的当前时区是服务器的时间 可以在每个连接的基础上设置时区,只要时区设置保持不变,该 timestamp 字段读写的值就会保持一致 和 datetime 的区别 datetime 没有时区概念...,客户端传什么时间就存什么时间,省去了转换时区的步骤 datetime 和 timestamp 区别三:字节数 datetime 和 timestamp 存储的都是二进制而不是字符串 timestamp...:4 个字节 datetime:5 个字节(有些教程会写 8 个,但官方文档目前 mysql8 中 datetime 是 5 个字节进行存储) 重点 它们在保存小数秒时,都将使用额外的空间(1-3

    6.8K10

    学习PHP中的任意精度扩展函数

    不管你是学得什么专业,到最后基本上都会要学习数据结构与算法,而算法其实就是研究的如何利用数学来优化各种排序和查找能力。PHP 在底层已经帮我们准备好了很多的数学计算函数,就让我们一一来学习吧。...我们都知道,在程序世界中,任何数据其实在底层都是以二进制的形式存在的。而浮点数,则由于小数点的存在,在存储时更为复杂,所以就会经常出现这类精度丢失的问题。...精度丢失的问题并不是哪个语言的问题,基本上所有语言都会存在这样的问题,只是表现的形式不一样。 bc 精度运算 我们先来看一下在 PHP 环境中的精度丢失要怎么展现出来。...=> intval(bcmul($a, 100)), // "a6":58 'a7' => 1.1 + 2.2, // "a7":3.3000000000000003 'a8' =>...a7、a8 是加法的演示,怎么样,在 PHP 中,1.1+2.2 的结果其实也和 JS 中是一样的吧,通过 bcadd() 就可以处理加法的精度问题。

    94130

    Python实现微秒级延时

    Python实现 微秒(μs) 级 延时/计时 的方法 前言 最近在学习树莓派的GPIO,想用Python来读取DHT11温湿度传感器的数据,DHT11是使用单总线通信的,需要用到微秒级的延时,使用sleep...()函数好像没法达到要求,然后我发现时间戳可以精确到小数点后7位,也就是0.1微秒,虽然实际应该达不到这样的精度,但应该还是够用的。...1秒(s)=1000毫秒(ms)=1000000微秒(μs) 什么是时间戳 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数...,然后调用函数 delayMicrosecond(t) 括号内t为延时时间,单位为微秒。...上面的源码中的 t-3 是时间补偿,因为调用函数,执行循环等指令也会消耗时间,可以根据自己测试出来自己修改,我用树莓派4测试出的结果是多消耗了3微秒,所以要减去3。

    3.3K10

    两道常见MySQL面试题

    浮点类型如何选型?为什么?面试官提出的问题在MySQL中,我们经常需要存储和处理小数数据。FLOAT、DOUBLE和DECIMAL是MySQL中用于存储小数的三种主要数据类型。...使用场景:不同数据类型适用的场景,特别是在对精度要求高的场合下的表现。面试者如何回答精度FLOAT:单精度浮点数,能精确到小数点后6-7位,用32位二进制表示。...DECIMAL:存储形式为每9位十进制数存储为4个字节,具体占用空间取决于定义的精度和标度。使用场景FLOAT:适用于表示范围较大但精度要求不高的数值。...问题的重点MySQL财务计算的准确性问题:了解MySQL在处理财务计算时可能遇到的精度损失、舍入误差等问题。数据类型选择:探讨在财务计算中应如何选择合适的数据类型(如DECIMAL)以确保精度。...DECIMAL(19, 2) NOT NULL COMMENT '金额' -- 金额字段,总长度为19位,其中小数部分为2位);DECIMAL(19, 2):指定了精度为19位,其中小数部分为2位。

    8010

    mysql从5.7迁移表结构到5.5报错 near ‘(0) NULL DEFAULT NULL’

    那么sql语句一般是正常没问题的, 一般是环境差异导致的,如(版本不同) 原来的表创建过程是使用软件可视化的,datetime长度这里没有填写,默认是为0,所以首先是对这个的不理解 从这里去找了资料,发现对...datetime长度的说明资料很少,但还是有一个百度回答说到了(虽然不够准确) 原文为: 在navicat里面datetime的长度好像指的是秒后面的小数点位数,可以设置为0-6位 不准确的地方有以下...并不是在navicat这个软件里,而是mysql数据库中 在mysql数据库中也会有不同的版本差异(导致这篇文章遇到问题的原因) 所用词“好像指的是”,代表回答该问题的前辈并没有找过官方文献、测试 官方文献...For example: 重点为第一句,mysql在5.6后支持了小数秒,精度高达微秒(6位) 解决该问题 解决该问题(或者说从根源上避免遇到此类问题),应该保证开发环境的一致,同一项目的所有开发人员都应该保持所有环境的版本号一致...(最好精确到小版本) 如果只是为了临时在mysql5.5完成测试,并且确认业务程序不需要使用到时间的小数秒,可以将sql文件中的长度设置删除,然后导入 datetime(0) NULL DEFAULT

    3K30
    领券