如何把datetime类型字段修改为int类型

如何把datetime类型字段修改为int类型

我有一个表为:table1

其中有一个datetime类型的字段  a    现在我想我想把字段a的类型改为int类型

当我执行以下命令时报如下的错误
alter table table1 alter column a int null
报错:不充许从数据类型datetime到数据类型int的隐性转换   表table1,列a 请用convert函数来运行此查询

本人想求:能不能通过alter命令来修改得出呢?中间通过什么转换函数直接出呢。如convert等
alter table table1 alter column a int null

我曾做过这样的测试:
第一种:
1.update table1 set a=‘‘
2.alter table table1 alter column a int null
结果OK
第二种:
1.alter table table1 alter column a char null
2.alter table table1 alter column a int null
OK
第三种:
1.alter table table1 drop columnl
2.alter table table1 add  a int null
ok

时间: 2024-11-01 20:43:06

如何把datetime类型字段修改为int类型的相关文章

C#控制台基础 返回类型为void的 int 类型 参数委托与匿名函数

1 code 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace ConsoleApplication2 8 { 9 //返回类型为void的 int 类型 参数委托 10 public delegate void MyFirst(int num); 11 class P

long类型字段转换成varchar2类型

参考文档: How to Convert a Long to Varchar2 (文档 ID 228532.1) /*long类型字段转换成varchar2类型*/ --建表 create table dxmy_long(lon long,var varchar2(100 )); --插数 insert into dxmy_long values( '丹心','明月' ); commit; --查看 declare v1 varchar2(100 ); begin select lon into

SQL string类型的数据按int类型排序

说明: 我在做wms进销存软件时,发现一个问题:一张入库单(T_OutIn_BoxTop),入库扫描时要分成多箱,箱号(BoxTop_No)可以是数字也可以是字符串,所以箱号只能是字符串类型的,问题来了,如何进行排序呢? 具体如下: 排序时:CAST(Box_No AS INT) sql语句: SELECT  * FROM T_OutIn_BoxTop WHERE MainTop_ID =17722  ORDER BY CAST(Box_No AS INT)  ASC

扩展mybatis和通用mapper,支持mysql的geometry类型字段

因项目中需要用到地理位置信息的存储.查询.计算等,经过研究决定使用mysql(5.7版本)数据库的geometry类型字段来保存地理位置坐标,使用虚拟列(Virtual Generated Column)来保存geohash值,便于查询. 需要了解geometry如何使用及优势可参看: mysql中geometry类型的简单使用 MySQL Geometry扩展在地理位置计算中的效率优势 本文主要讲解扩展mybatis和通用mapper,使其支持geometry类型字段的新增.修改.查询 首先创

INT类型知多少

前言:整型是MySQL中最常用的字段类型之一,通常用于存储整数,其中int是整型中最常用的,对于int类型你是否真正了解呢?本文会带你熟悉int类型相关知识,也会介绍其他整型字段的使用. 1.整型分类及存储范围 整数类型 字节 有符号范围 无符号范围 TINYINT 1 -128 ~ 127 0 ~ 255 SMALLINT 2 -32768 ~ 32767 0 ~ 65535 MEDIUMINT 3 -8388608 ~ 8388607 0 ~ 16777215 INT/INTEGER 4 -

String 类型equals方法和int == 方法效率比较

最近写了一个递归方法,在进行比较判断的时候,因为都是integer类型,而integer类型在大于127或者小于-128时会在新建一个,这是因为integer类型的拆装箱机制, 之前没有考虑过equals方法和 == 方法的效率,又为了避免integer类型的拆装箱机制导致的错误,所以将integer类型使用String.valueOf()方法,将所有的integer类型转为了字符串使用equals方法进行比较. 后来被我师傅不经意间看到,指出来这个错误,我立马改为了Integer.intVal

MySQL时间字段究竟使用INT还是DateTime的说明

今天解析DEDECMS时发现deder的MYSQL时间字段,都是用 `senddata` int(10) unsigned NOT NULL DEFAULT '0'; 随后又在网上找到这篇文章,看来如果时间字段有参与运算,用int更好,一来检索时不用在字段上转换运算,直接用于时间比较!二来如下所述效率也更高. 归根结底:用int来代替data类型,更高效. 环境: Windows XP PHP Version 5.2.9 MySQL Server 5.1 第一步.创建一个表date_test(非

mysql中timestamp,datetime,int类型的区别与优劣

mysql中timestamp,datetime,int类型的区别与优劣 int 1. 占用4个字节 2. 建立索引之后,查询速度快 3. 条件范围搜索可以使用使用between 4. 不能使用mysql提供的时间函数 结论:适合需要进行大量时间范围查询的数据表 datetime 1. 占用8个字节 2. 允许为空值,可以自定义值,系统不会自动修改其值. 3. 实际格式储存(Just stores what you have stored and retrieves the same thing

MySQL中int类型的字段使用like查询方法

方法参考自: http://stackoverflow.com/questions/8422455/performing-a-like-comparison-on-an-int-field 也就是使用CAST转换指定字段,然后进行比较.具体样例代码如下: SELECT ProductID, ProductName FROM Products WHERE CAST(ProductID as CHAR) LIKE '%15%' 但是这样做的话,MySQL不能使用对应int字段索引,而且like本身就