Hos*_*ser 2 sql sql-server casting
基本上我想让这个命令工作:
$sql = "SELECT (EntryDate + TotalTime) as DataLine FROM TimeSheet WHERE EmployeeID='AA01'";
Run Code Online (Sandbox Code Playgroud)
EntryDate在数据库中作为文本,但TotalTime是一个数字.我需要将TotalTime转换为文本,因为我注意到如果我将两种不同类型的值组合在一起,它只会消除输出.
我知道我应该使用CAST(TotalTime作为XXX),但我不确定我可以合法地将其投入使用(char/nchar似乎不起作用,字符串也不是文本).我总是得到一个错误的形式......
Syntax error (missing operator) in query expression '(EntryDate + CAST(TotalTime as string) as DataLine FROM TimeSheet WHERE EmployeeID='AA01''
Run Code Online (Sandbox Code Playgroud)
我可以得到一些帮助吗?谢谢!
编辑我想要注意,这并不是要将EntryDate和TotalTime的值一起添加到一起来生成单个值.我只是希望它给我EntryDate值以及TotalTime值组合成一行,它将读取如下内容:
"10/31/12 9.25"
再次编辑我很抱歉之前没有指定,我正在使用MSSQL
试试这个:
SELECT
CAST(EntryDate AS VARCHAR(25)) + CAST(TotalTime AS VARCHAR(10)) as DataLine
FROM TimeSheet
WHERE EmployeeID = 'AA01';
Run Code Online (Sandbox Code Playgroud)
但是,如果entrydate是日期而int totaltime是时间,则最好考虑将它们作为日期时间对象转换为时间部分,这取决于您使用的RDBMS.如果可能,使用DATETIME数据类型来表示日期和时间部分,而不是两部分.像这样:
SELECT DATEADD(hh, totaltime, entrydate)
FROM TimeSheet
WHERE EmployeeID = 'AA01';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27943 次 |
| 最近记录: |