161 lines
3.6 KiB
PHP
161 lines
3.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* 把时间戳转换成时间
|
|
*/
|
|
function sql_timestamp_datetime($value) {
|
|
$db_type = env('DB_CONNECTION');
|
|
if ($db_type == 'sqlsrv') {
|
|
$value = "DATEADD(ss, {$value}, '1970-01-01 08:00:00')";
|
|
} elseif ($db_type == 'mysql') {
|
|
$value = "from_unixtime({$value})";
|
|
}
|
|
return $value;
|
|
}
|
|
|
|
/**
|
|
* 获取sql年
|
|
*/
|
|
function sql_year($value, $type = 'date') {
|
|
|
|
$db_type = env('DB_CONNECTION');
|
|
$sql = null;
|
|
if ($type == 'ts') {
|
|
$value = sql_timestamp_datetime($value);
|
|
}
|
|
if ($db_type == 'sqlsrv') {
|
|
$sql = "year({$value})";
|
|
} else if($db_type == 'mysql') {
|
|
$sql = "year({$value})";
|
|
}
|
|
return $sql;
|
|
}
|
|
|
|
/**
|
|
* 获取sql月
|
|
*/
|
|
function sql_month($value, $type = 'date') {
|
|
|
|
$db_type = env('DB_CONNECTION');
|
|
$sql = null;
|
|
if ($type == 'ts') {
|
|
$value = sql_timestamp_datetime($value);
|
|
}
|
|
if($db_type == 'sqlsrv') {
|
|
$sql = "month({$value})";
|
|
} else if($db_type == 'mysql') {
|
|
$sql = "month({$value})";
|
|
}
|
|
return $sql;
|
|
}
|
|
|
|
/**
|
|
* (时间戳,时间)字段转换为年月
|
|
*/
|
|
function sql_year_month($value, $type = 'date') {
|
|
$db_type = env('DB_CONNECTION');
|
|
$sql = null;
|
|
if ($type == 'ts') {
|
|
$value = sql_timestamp_datetime($value);
|
|
}
|
|
if($db_type == 'sqlsrv') {
|
|
$sql = "CONVERT(varchar(7), {$value}, 120)";
|
|
} else if($db_type == 'mysql') {
|
|
$sql = "DATE_FORMAT({$value}, '%Y-%m')";
|
|
}
|
|
return $sql;
|
|
}
|
|
|
|
/**
|
|
* (时间戳,时间)字段转换为年周
|
|
*/
|
|
function sql_year_week($value, $type = 'date') {
|
|
$db_type = env('DB_CONNECTION');
|
|
$sql = null;
|
|
if ($type == 'ts') {
|
|
$value = sql_timestamp_datetime($value);
|
|
}
|
|
if ($db_type == 'sqlsrv') {
|
|
$sql = "DATEPART(week, {$value})";
|
|
} else if($db_type == 'mysql') {
|
|
$sql = "WEEK({$value}, 1)";
|
|
}
|
|
return $sql;
|
|
}
|
|
|
|
|
|
/**
|
|
* (时间戳,时间)字段转换为年月日
|
|
*/
|
|
function sql_year_month_day($value, $type = 'date') {
|
|
$db_type = env('DB_CONNECTION');
|
|
$sql = null;
|
|
if ($type == 'ts') {
|
|
$value = sql_timestamp_datetime($value);
|
|
}
|
|
if ($db_type == 'sqlsrv') {
|
|
$sql = "CONVERT(varchar(10), {$value}, 120)";
|
|
} else if($db_type == 'mysql') {
|
|
$sql = "DATE_FORMAT({$value}, '%Y-%m-%d')";
|
|
}
|
|
return $sql;
|
|
}
|
|
|
|
/**
|
|
* (时间戳, 时间)字段转换为月日
|
|
*/
|
|
function sql_month_day($value, $type = 'date') {
|
|
$db_type = env('DB_CONNECTION');
|
|
$sql = null;
|
|
if ($type == 'ts') {
|
|
$value = sql_timestamp_datetime($value);
|
|
}
|
|
if($db_type == 'sqlsrv') {
|
|
$sql = "substring(convert(varchar(10), {$value}, 120), 6, 10)";
|
|
} else if($db_type == 'mysql') {
|
|
$sql = "DATE_FORMAT({$value}, '%m-%d')";
|
|
}
|
|
return $sql;
|
|
}
|
|
|
|
/**
|
|
* 浮点类型转换成字符串(主要正对sqlserver)
|
|
*/
|
|
function sql_float_varchar($value, $length = 255) {
|
|
$db_type = env('DB_CONNECTION');
|
|
$sql = null;
|
|
if($db_type == 'sqlsrv') {
|
|
$sql = "CONVERT(VARCHAR({$length}), {$value})";
|
|
} else if($db_type == 'mysql') {
|
|
$sql = $value;
|
|
}
|
|
return $sql;
|
|
}
|
|
|
|
/**
|
|
* 实现不同的日期对比
|
|
*/
|
|
function sql_is_date($value) {
|
|
$db_type = env('DB_CONNECTION');
|
|
$sql = null;
|
|
if ($db_type == 'sqlsrv') {
|
|
$sql = $value;
|
|
} else if($db_type == 'mysql') {
|
|
$sql = $value;
|
|
}
|
|
return $sql;
|
|
}
|
|
|
|
/**
|
|
* 实现不同的天差
|
|
*/
|
|
function sql_day_diff($field, $value) {
|
|
$db_type = env('DB_CONNECTION');
|
|
$sql = null;
|
|
if($db_type == 'sqlsrv') {
|
|
$sql = "datediff(day, $field, '$value')";
|
|
} else if($db_type == 'mysql') {
|
|
$sql = "datediff($field, '$value')";
|
|
}
|
|
return $sql;
|
|
} |