{
  "text":{
    "type": "varchar",
    "length": -1
  },
  "nchar":{ "type": "char" },
  "nvarchar":{ "type": "varchar" },
  "ntext":{ "type": "text" },
  "smalldatetime":{ "type": "datetime" },
  "datetime2":{ "type": "datetime" },
  "numeric":{ "type": "decimal" },
  "bit":{ "type": "boolean" },
  "decimal":{ 
    "sql_from_db": "cast(%%%SQL%%% as nvarchar)",
    "sqlsort": "cast(%%%SQL%%% as decimal(%%%PREC_H%%%,%%%PREC_L%%%))",
    "sql_to_db": "cast(%%%SQL%%% as decimal(%%%PREC_H%%%,%%%PREC_L%%%))",
    "sqlsearch": "cast(%%%SQL%%% as decimal(%%%PREC_H%%%,%%%PREC_L%%%))",
    "sqlsearch_to_db": "cast(%%%SQL%%% as decimal(%%%PREC_H%%%,%%%PREC_L%%%))",
    "datatype_config": {
      "defaults":{ "PREC_H": 38, "PREC_L": 10 }
    }
  },
  "float":{ 
    "sql_from_db": "convert(varchar(50), %%%SQL%%%, 3)",
    "sqlsort": "cast(%%%SQL%%% as float(%%%PREC%%%))",
    "sql_to_db": "cast(%%%SQL%%% as float(%%%PREC%%%))",
    "sqlsearch": "cast(%%%SQL%%% as float(%%%PREC%%%))",
    "sqlsearch_to_db": "cast(%%%SQL%%% as float(%%%PREC%%%))",
    "datatype_config": {
      "defaults":{ "PREC": 53 }
    }
  },
  "real":{
    "type":"float",
    "precision": 24
  },
  "money":{ 
    "sql_from_db": "cast(%%%SQL%%% as nvarchar)",
    "sqlsort": "cast(%%%SQL%%% as decimal(%%%PREC_H%%%,%%%PREC_L%%%))",
    "sql_to_db": "cast(%%%SQL%%% as decimal(%%%PREC_H%%%,%%%PREC_L%%%))",
    "sqlsearch": "cast(%%%SQL%%% as decimal(%%%PREC_H%%%,%%%PREC_L%%%))",
    "sqlsearch_to_db": "cast(%%%SQL%%% as decimal(%%%PREC_H%%%,%%%PREC_L%%%))",
    "datatype_config": {
      "defaults":{ "PREC_H": 19, "PREC_L": 4 }
    },
    "type": "decimal"
  },
  "money4":{
    "sql_from_db": "convert(nvarchar, %%%SQL%%%, 2)",
    "type": "money"
  },
  "smallmoney":{ 
    "sql_from_db": "cast(%%%SQL%%% as nvarchar)",
    "sqlsort": "cast(%%%SQL%%% as decimal(%%%PREC_H%%%,%%%PREC_L%%%))",
    "sql_to_db": "cast(%%%SQL%%% as decimal(%%%PREC_H%%%,%%%PREC_L%%%))",
    "sqlsearch": "cast(%%%SQL%%% as decimal(%%%PREC_H%%%,%%%PREC_L%%%))",
    "sqlsearch_to_db": "cast(%%%SQL%%% as decimal(%%%PREC_H%%%,%%%PREC_L%%%))",
    "datatype_config": {
      "defaults":{ "PREC_H": 10, "PREC_L": 4 }
    },
    "type": "decimal"
  },
  "smallmoney4":{ 
    "sql_from_db": "convert(nvarchar, %%%SQL%%%, 2)",
    "type": "smallmoney"
  },
  "datetime":{
    "sql_from_db": "cast(%%%SQL%%% as datetime2(7))",
    "sqlsearch": "%%%SQL%%%"
  },
  "datetimeoffset":{
    "sql_from_db": "convert(varchar(50),%%%SQL%%%,126)",
    "sqlsearch": "%%%SQL%%%",
    "type": "datetime",
    "datatype_config": {
      "preserve_timezone": true
    }
  },
  "binary":{ 
    "sql_from_db": "convert(varchar(max), %%%SQL%%%, 1)",
    "sql_to_db": "convert(BINARY(%%%LENGTH%%%), %%%SQL%%%, 1)",
    "type": "varchar",
    "datatype_config": {
      "defaults":{ "LENGTH": 8000 },
      "validate": ["MaxLength:2*%%%LENGTH%%%+2"],
      "override_length": "-1"
    }
  },
  "varbinary":{ 
    "sql_from_db": "convert(varchar(max), %%%SQL%%%, 1)",
    "sql_to_db": "convert(VARBINARY(<%=((LENGTH<0)?'MAX':LENGTH)%>), %%%SQL%%%, 1)",
    "type": "varchar",
    "datatype_config": {
      "defaults":{ "LENGTH": 8000 },
      "validate": ["<% if(LENGTH>0){ %>MaxLength:2*%%%LENGTH%%%+2<% } %>"],
      "override_length": "-1"
    }
  },
  "image":{ 
    "sql_from_db": "convert(varchar(max), convert(varbinary(max),%%%SQL%%%), 1)",
    "sql_to_db": "convert(VARBINARY(MAX), %%%SQL%%%, 1)",
    "type": "varchar"
  },
  "timestamp":{ 
    "sql_from_db": "convert(varchar(max), convert(varbinary(max), %%%SQL%%%), 1)",
    "type": "varchar"
  },
  "uniqueidentifier":{ 
    "sql_from_db": "cast(%%%SQL%%% as varchar(36))",
    "sql_to_db": "convert(uniqueidentifier, %%%SQL%%%)",
    "type": "varchar"
  },
  "sql_variant":{ 
    "sql_from_db": "cast(%%%SQL%%% as nvarchar)",
    "type": "varchar",
    "datatype_config": {
      "override_length": "4000"
    }
  },
  "hierarchyid":{ 
    "sql_from_db": "cast(%%%SQL%%% as nvarchar)",
    "sql_to_db": "cast(%%%SQL%%% as hierarchyid)",
    "type": "varchar"
  },
  "geometry":{ 
    "sql_from_db": "(%%%SQL%%%).STAsText()",
    "sql_to_db": "geometry::STGeomFromText(%%%SQL%%%, 0)",
    "type": "varchar"
  },
  "geography":{ 
    "sql_from_db": "(%%%SQL%%%).STAsText()",
    "sql_to_db": "geography::STGeomFromText(%%%SQL%%%, 4326)",
    "type": "varchar"
  },
  "xml":{
    "sql_from_db": "%%%SQL%%%",
    "sqlsearch": "cast(%%%SQL%%% as nvarchar(max))",
    "sql_to_db": "cast(%%%SQL%%% as xml)",
    "type": "varchar"
  },
  "sysname":{ 
    "length": 128,
    "type": "varchar"
  }
}