SELECT (SYSDATE-TRUNC(SYSDATE))*24 NOWDATE,TO_CHAR(SYSDATE,'DD') DD,TO_CHAR(SYSDATE,'MM') MM FROM DUAL轉成SQLSERVER
时间: 2024-09-06 07:05:18 浏览: 70
Oracle to_char 日期转换字符串语句分享
在Oracle数据库中,`SYSDATE` 是用来获取当前系统日期和时间的一个函数。`TRUNC(SYSDATE)` 是用来获取当前系统日期(不包含时间部分)。计算 `(SYSDATE-TRUNC(SYSDATE))*24` 的结果是获取当前系统时间的小时数。`TO_CHAR(SYSDATE,'DD')` 和 `TO_CHAR(SYSDATE,'MM')` 分别是将当前日期格式化为日和月的字符串。
在SQL Server中,等效的操作可以通过 `GETDATE()` 函数来实现,该函数返回当前的日期和时间。使用 `CONVERT` 函数或者 `FORMAT` 函数(在SQL Server 2012及以上版本可用)可以将日期时间格式化为特定的字符串格式。
将上述Oracle SQL语句转换为SQL Server的等效语句如下:
```sql
SELECT
DATEDIFF(HOUR, 0, GETDATE()) AS NOWDATE,
RIGHT('0' + CONVERT(VARCHAR, DAY(GETDATE())), 2) AS DD,
RIGHT('0' + CONVERT(VARCHAR, MONTH(GETDATE())), 2) AS MM
FROM
sys.dual
```
这里使用 `DATEDIFF` 函数来计算当前时间与当天0点之间的小时数。`CONVERT` 函数将日期部分转换为字符串,`RIGHT` 函数确保日和月始终是两位数字的字符串(如果不足两位,前面补0)。
阅读全文