我需要做的是将字段舍入到2位小数,但不是通常的方式。我有一个下拉列表,它总是舍入到2位小数(CIT_NBR)。但是,在数据库表中,它有时会舍入为1位小数。所以现在我试图基于这个字段创建一个SELECT语句,但是我的前端将它存储为2个小数,我的后端可以存储为1或2个小数。不要问,这很复杂。 :O)
那么,我想做什么" aircode"是这样的:
SELECT * FROM VW_MOS_DPL_AccountValidation WHERE CUST_NUM = @CNum
AND Format(CIT_NBR, 2 decimals) = @CITNum
这样,它会强制表中的数据使用2位小数,因此可以将其与我的下拉列表进行比较。
这是我的代码块:
using (SqlConnection con2 = new SqlConnection(str2))
{
using (SqlCommand cmd2 = new SqlCommand(@"SELECT * FROM VW_MOS_DPL_AccountValidation WHERE CUST_NUM = @CNum AND CIT_NBR = @CITNum", con2))
{
con2.Open();
cmd2.Parameters.AddWithValue("@CNum", TBAccountNum.Text);
string ddlCITVal2 = ddlCIT.SelectedValue;
cmd2.Parameters.AddWithValue("@CITNum", ddlCITVal2);
using (SqlDataReader DT2 = cmd2.ExecuteReader())
{
// If the SQL returns any records, process the info
if (DT2.HasRows)
{
while (DT2.Read())
{
.
.
.
etc
我怎么能这样做?
答案 0 :(得分:1)
Cast the varchar to a decimal
SELECT SUM(Cast(CitNum as decimal(8,2))) as CitNum FROM table
答案 1 :(得分:0)
有一种更高效的方法,但这是最容易阅读和维护的,除非它导致真正的性能问题。
.html.twig
除非你真的意味着舍入到一个小数而不是你给出的例子,它只是截断一个尾随零,在这种情况下需要使用不同的方法。