标签: varchar

将此varchar转换为具有适当小数点的小数?

我一直在玩cast()等等,但似乎无法让事情发挥作用.我有一个长度为18个字符的varchar字符串,我想将其转换或转换为十进制,并带有五个小数位.例如,这个字符串:

00000001987600130

将成为19876.00130

在这种情况下,我总是有一个17个字符的字符串,最后五个字符保留为小数位.

我一直在和演员和皈依者一起玩,但我不在那里.例如,这些陈述让我(有点)接近但不完全正确.

select CAST('00000001987600130' as bigint)/100000.0

select (convert(decimal(17,5),left('00000001987600130',12),0))
Run Code Online (Sandbox Code Playgroud)

如果您有任何建议,我很乐意尝试.谢谢!

varchar casting sql-server-2005 decimal

1
推荐指数
1
解决办法
3952
查看次数

从varchar(36)到UNIQUEIDENTIFIER

我想投一个AuctionId这是一个UNIQUEIDENTIFIERvarchar(36),然后回到一个UNIQUEIDENTIFIER.请帮我.

CAST((SUBSTRING(CAST([AuctionId] as VARCHAR(36)), 0, 35) + '1') AS UNIQUEIDENTIFIER)
Run Code Online (Sandbox Code Playgroud)

但我一直收到这个错误:

消息8169,级别16,状态2,行647从字符串转换为uniqueidentifier时转换失败.

提前致谢

sql sql-server varchar casting uniqueidentifier

1
推荐指数
1
解决办法
7839
查看次数

如何在oracle中将varchar2转换为数字?

我有一张包含许多记录的表格,并且还在继续增长:

  table T_A
  { 
    total varchar2(10),
    total number
  }
Run Code Online (Sandbox Code Playgroud)

"总"字段由5个数字和1个字符组成,例如"12345p",该字符是"p"或"N".

现在,我想写一个触发器将现有的"total"转换为数字并将它们存储在"total_num"中.此外,如果有插入或更新操作,它可以自动完成此转换,并且必须满足以下条件:

如果字符是"p",则数字为正,例如"12345p"转换为"12345",否则数字为负数.例如,"12345N"转换为"-12345".

如何写这个触发器?

oracle varchar triggers numbers

1
推荐指数
1
解决办法
1万
查看次数

将sql中的日期/时间转换为字符串

有什么方法可以转换此日期时间 SQL 值:

2011-10-11 00:00:00.000
Run Code Online (Sandbox Code Playgroud)

到格式完全相同的字符串?

'2011-10-11 00:00:00.000'
Run Code Online (Sandbox Code Playgroud)

我尝试这样做,cast(fl_from_dt as varchar(50)但它会将其转换为可读的内容 - 例如。'Oct 11 2011 12:00AM'

t-sql datetime varchar

1
推荐指数
1
解决办法
1万
查看次数

基于字节的CLR字符串长度

问题的简短版本:有没有办法计算VARCHAR(n)在Oracle数据库的列中存储字符串字符所需的字节数?

更长版本:以下Oracle SQL脚本将在第三个语句中失败.它会尝试在一VARCHAR(10)列中插入10个字符; 然而,其中一个角色是带有尖锐口音的A.

CREATE TABLE TESTTABLE (NAME VARCHAR(10) NULL);

INSERT INTO TESTTABLE (NAME) VALUES ('abcdefghij');
--1 rows inserted.

INSERT INTO TESTTABLE (NAME) VALUES ('ábcdefghij');
--ORA-12899: value too large for column "ACME"."TESTTABLE"."NAME" (actual: 11, maximum: 10)
Run Code Online (Sandbox Code Playgroud)

我的C#应用​​程序将字符串存储在Oracle数据库中,我不能只将列类型更改为NVARCHAR2(10),这将起作用.应用程序应该将任何较大的字符串修剪为10个字符的限制,因此Oracle不会抱怨它的长度.但String.Length基于a- based的修剪是一种非常天真的策略:它会盲目地将"ábcdefghij"保留为其所有10个CLR字符.

如何检测'á'将占用数据库行中的2个字节,以便在发出语句之前将字符串修剪为"ábcdefghi"INSERT

编辑:这个问题类似于基于字节长度缩短UTF8字符串的最佳方法

.net string oracle varchar

1
推荐指数
1
解决办法
453
查看次数

如何正确编写MySQL列类型varchar(1000)中的文本?

我在MySQL DB中有一个列VARCHAR(1000).因此,当PHP请求插入超过1000个符号时,其余文本将被拒绝.

在我放置了一个textareawith 的网站上maxlength=1000,但在服务器端,PHP解析提交的文本与htmlspecialchars函数,所以如果文本是it's called "nothing",它就变成了it's called "nothing".

问题是文本可能会变成超过1000个符号,即使它输入的字符很清楚1000个字符.

你能帮我找到正确的方法,正确的功能等来插入用户输入的所有字符吗?

php mysql sql varchar

1
推荐指数
1
解决办法
534
查看次数

使用VARCHAR或INT列 - MySQL可以改变性能

我有很多表,有数百万行,有MySQL.这些表用于存储日志行.我在VARCHAR(50)中有一个字段"country".此列上有一个索引.它是否会改变在一个国家的INT而不是这个国家领域存储的性能?

谢谢 !

mysql performance varchar integer innodb

1
推荐指数
1
解决办法
1589
查看次数

数据库 - 以VARCHAR数据类型存储数值

我目前正在开展一个项目,要求我在献血之前存储记录的血红蛋白水平以及血压......就像'190/80'.我应该把它作为一个字符串存储在Varchar中两个单独的值,例如收缩压(INT)190,舒张压(INT)80?反馈意见

mysql varchar types

1
推荐指数
1
解决办法
591
查看次数

为什么我应该使用char而不是varchar?

Char并且varchar是SQL中的数据类型,因为它们在许多其他语言中(所以这个问题可能是多语言).

从我的理解,不同的是,如果我宣布Char因为Char(20)它会分配20(字节/位)有人能澄清这一点呢?现在,我将使用字节.].然后,如果我只使用16个字节,我仍然会有四个分配给该字段.(浪费4个字节的内存.)

但是,如果我声明一个varcharas varchar(20)并且只使用了16个字节,那么它只会分配16个字节.

当然这更好吗?为什么有人会选择char?它是遗留的原因,还是我缺少的东西?

sql sql-server varchar database-design char

1
推荐指数
1
解决办法
4333
查看次数

ExecuteReader没有返回任何内容

我有一个名为'MatchType'的表,它包含:

ID | MatchTypeName
1  | One Day
2  | Two Day
3  | T20
Run Code Online (Sandbox Code Playgroud)

我有一个方法来根据与下列值匹配的sting从该表中检索记录MatchTypeName:

public static int GetByName(string matchType)
{          
    MatchType item = new MatchType();

    using (SqlConnection con = new SqlConnection(BaseDataAccessLayer.GetConnectionStringByName()))
    {
        using (SqlCommand cmd = new SqlCommand(STORED_PROC_GetByName, con))
        {
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@matchTypeName", SqlDbType.VarChar, 20).Value = matchType;
            con.Open();

            using (IDataReader reader = cmd.ExecuteReader())
            {
                item.LoadFromReader(reader);
            }
        }
    }

    return item.Id;
}
Run Code Online (Sandbox Code Playgroud)

此方法调用此存储过程:

CREATE PROCEDURE [dbo].[MatchType_GetByName]
    (@matchTypeName varchar(20))
AS
BEGIN
    SET NOCOUNT ON

    SELECT 
        [Id], [MatchTypeName] …
Run Code Online (Sandbox Code Playgroud)

c# sql sql-server varchar stored-procedures

1
推荐指数
1
解决办法
722
查看次数