Ken said:
For three decimal places:
My3: Format([RealFieldName], "0.000")
Which rounding algorithm?
SELECT 0.0025 AS RealFieldName,
FORMAT(RealFieldName, '0.000') AS My3
returns '0.003' (i.e. arithmetic rounding),
SELECT 0.0025 AS RealFieldName,
ROUND(RealFieldName, 3) AS My3
returns 0.002 (i.e. banker's rounding).
Which data type? (think schema.ini file)
SELECT 0.0025 AS RealFieldName,
TYPENAME(FORMAT(RealFieldName, '0.000'))
returns 'String' (i.e. converted to NVARCHAR),
SELECT 0.0025 AS RealFieldName,
TYPENAME(ROUND(RealFieldName, 3))
returns 'Decimal' (i.e. original data type retained).
For date without the time:
MyD: Format([RealFieldName], "mm/dd/yyyy")
Which region?
SELECT DATESERIAL(2006, 4, 1) AS RealFieldName,
MONTH(FORMAT(RealFieldName, 'mm/dd/yyyy'))
returns 1 for UK region and 4 for US region,
SELECT DATESERIAL(2006, 4, 1) AS RealFieldName,
MONTH(FORMAT(RealFieldName, 'yyyy-mm-dd'))
returns 2 for all regions (i.e. 'yyyy-mm-dd' is region independent).
Which data type?
SELECT DATESERIAL(2006, 4, 1) + TIMESERIAL(5, 6, 7) AS RealFieldName,
TYPENAME(FORMAT(RealFieldName, 'yyyy-mm-dd'))
returns 'String' (i.e. converted to NVARCHAR)
SELECT DATESERIAL(2006, 4, 1) + TIMESERIAL(5, 6, 7) AS RealFieldName,
TYPENAME(DATEVALUE(RealFieldName))
returns 'Date' (i.e. original data type retained).
Jamie.
--